Sobes.tech
Junior

Wo werden Objekte im Speicher gespeichert?

sobes.tech KI

Antwort von AI

Objekte im Speicher werden im Heap gespeichert.

Der Heap ist ein dynamisch zugewiesener Speicherbereich, in dem Objekte während der Programmausführung platziert werden. Die Größe der Objekte ist im Voraus nicht bekannt, und sie werden vom Garbage Collector entfernt.

Primitive Datentypen (Ganzzahlen, boolesche Werte usw.) werden in der Regel im Stack gespeichert. Der Stack ist ein statisch zugewiesener Speicherbereich, der für lokale Variablen und Funktionsaufrisinformationen verwendet wird und automatisch verwaltet wird.

Objektverweise (also Adressen im Heap) werden im Stack oder in anderen Objekten im Heap gespeichert.

Beispiel in Java:

// Primitive Variable (int) wird im Stack gespeichert.
int count = 10;

// Referenzvariable (myObject) wird im Stack gespeichert.
// Das eigentliche Objekt MyObject wird im Heap erstellt.
MyObject myObject = new MyObject();

// Primitive innerhalb des Objekts (id) wird als Teil des Objekts im Heap gespeichert.
myObject.setId(1);

// Referenz auf ein anderes Objekt (anotherObject) innerhalb von myObject
// wird als Teil von myObject im Heap gespeichert. AnotherObject selbst ist im Heap.
myObject.setRelatedObject(new AnotherObject());

class MyObject {
    private int id; // im Heap gespeichert (als Teil von MyObject)
    private AnotherObject relatedObject; // Referenz im Heap

    public void setId(int id) {
        this.id = id;
    }

    public void setRelatedObject(AnotherObject relatedObject) {
        this.relatedObject = relatedObject;
    }
}

class AnotherObject {
    // ...
}

Daher:

  • Stack: Primitive Typen, Objektverweise.
  • Heap: Die eigentlichen Objekte, die ihre Felder enthalten (einschließlich primitiver Typen innerhalb der Objekte und Verweise auf andere Objekte).