9.3. Was ist mit lokalen Variablen, die Objekte sind?
Denken Sie daran, dass eine Variable eines nicht-elementaren Typs eine Referenz auf ein Objekt hält, nicht das Objekt selbst. Sie wissen bereits, wo Objekte leben – auf dem Heap. Es spielt keine Rolle, wo sie deklariert oder erzeugt werden. Wenn die lokale Variable eine Referenz auf ein Objekt ist, kommt nur die Variable (die Referenz/Fernsteuerung) auf den Stack.
Das Objekt selbst kommt trotzdem auf den Heap.
barf() deklariert und erzeugt eine neue Ente-Referenzvariable e (da sie innerhalb der Methode deklariert wird, ist sie eine lokale Variable und kommt auf den Stack).
barf()
foof()
EnteObjekt
Heap
public class StackRef { public void foof() { barf(); } public void barf() { Ente e = new ...
Get Java™ von Kopf bis Fuß now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.