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.