Sobes.tech
Middle

Wo werden Referenztypen gespeichert und was passiert mit ihnen während der Ausführung der Anwendung?

sobes.tech KI

Antwort von AI

Referenztypen werden im Heap gespeichert.

Während der Laufzeit der Anwendung passiert Folgendes:

  1. Erstellung: Beim Erstellen eines Referenztyps (z.B. new MyClass()) wird der Speicher für dieses Objekt im Heap reserviert. Die Variable, die es enthält, speichert eine Referenz auf diesen Speicherbereich.
  2. Zugriff: Der Zugriff auf Felder und Methoden des Objekts erfolgt über diese Referenz.
  3. Garbage Collection: Wenn ein Objekt von keiner aktiven Programmkomponente mehr zugänglich ist (es gibt keine Referenzen mehr darauf), kann der Garbage Collector den belegten Speicher im Heap freigeben. Dieser Vorgang läuft automatisch "im Hintergrund" ab und erfordert keine explizite Eingriffe des Entwicklers. Der Garbage Collector scannt regelmäßig den Heap, findet unerreichbare Objekte und gibt deren Speicher an das System zurück.
  4. Änderung: Der Inhalt des Objekts im Heap kann verändert werden. Wenn mehrere Referenzvariablen auf dasselbe Objekt zeigen, sind Änderungen an seinem Zustand für alle sichtbar.
  5. Rezuweisung der Referenz: Eine Referenzvariable kann auf ein anderes Objekt oder null umgelenkt werden.

Beispiel:

// Erstellen eines String-Objekts (Strings - Referenztyp) im Heap
String myString = "Hello";

// Die Variable myString_2 zeigt auf dasselbe Objekt
String myString_2 = myString;

// Erstellen eines neuen String-Objekts im Heap und Rezuweisung der Referenz
myString = "World";

// Jetzt zeigt myString auf ein anderes Objekt, und myString_2 zeigt weiterhin auf das alte