Sobes.tech
Junior

Was sind Heap und Stack?

sobes.tech KI

Antwort von AI

Heap und Stack sind zwei Speicherbereiche, die von Programmen zur Speicherung von Daten verwendet werden.

  • Stack (Stapel) ist ein Speicherbereich, in dem lokale Variablen, Funktionsparameter und Rücksprungadressen gespeichert werden. Es arbeitet nach dem LIFO-Prinzip (Last In, First Out). Wenn eine Funktion aufgerufen wird, wird ein Block im Stack reserviert, und nach Beendigung wieder freigegeben. Der Stack hat eine begrenzte Größe und wird automatisch verwaltet.

  • Heap (Haufen) ist ein Speicherbereich für die dynamische Zuweisung von Objekten und Daten, deren Größe sich während der Programmausführung ändern kann. In Java werden Objekte im Heap erstellt, und der Garbage Collector gibt automatisch ungenutzten Speicher frei.

Beispiel:

public void beispiel() {
    int a = 10; // im Stack gespeichert
    String s = new String("Hallo"); // String-Objekt im Heap
}

Hier ist a eine lokale Variable im Stack, und das String-Objekt befindet sich im Heap.