Java-Stack
Immer wenn ein Thread erstellt wird, erstellt die JVM einen entsprechenden Java Der Stapel enthält mehrere Stapel in diesem Java-Stack. Bei jeder Ausführung einer Methode wird ein Stapelrahmen erstellt, der einige „interne Variablen“ (in den darin definierten Methodenvariablen) enthält. Operationsstapel“ und „Methodenrückgabewert“ und andere Informationen.
Java-Heap
Der Heap ist der Ort, an dem Java-Objekte gespeichert werden. Er ist der Kernspeicherbereich für die Verwaltung von Java-Objekten. Der Heap ist das, was Java-Programmierer sein sollten am meisten beunruhigt, weil Es ist der Speicherbereich, der am engsten mit unserer Anwendung und unserem Speicher verbunden ist.
Jedes im Heap gespeicherte Java-Objekt ist eine Kopie der Objektklasse und kopiert alle nicht statischen Eigenschaften, die von seiner übergeordneten Klasse geerbt wurden.
Der Heap wird von allen Java-Threads gemeinsam genutzt, daher erfordert der Zugriff darauf Aufmerksamkeit auf Synchronisierungsprobleme und Methoden und entsprechende Attribute müssen Konsistenz gewährleisten.
Der Speicher kann in drei Bereiche unterteilt werden: Methodenbereich (auch statische Bereichsmethode genannt), Stapel und Heap
1. Methodenbereich
Speicher In diesem Bereich werden auch alle Klassen (d. h. Funktionen in Klassen) und statische Variablen gespeichert. Im Methodenbereich werden die einzigen Elemente im gesamten Programm gespeichert, z. B. Klassen und statische Variablen. Kann von allen Threads gemeinsam genutzt werden, genau wie der Heap.
2. Stapelspeicher:
speichert lokale Variablen, und sobald der Bereich, zu dem die Variable gehört, endet, wird die Variable automatisch freigegeben.
3. Heap-Speicher
speichert Entitäten, Arrays und Objekte (Arrays sind Objekte), und jede Entität hat einen ersten Adresswert. Alles, was neu herauskommt, befindet sich im Heap-Speicher und wird standardmäßig initialisiert. Es ist keine manuelle Freigabe oder automatische Speicherbereinigung erforderlich.
Empfohlenes Tutorial: Java-Tutorial
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Stack und Heap in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!