Heim >Java >JavaErste Schritte >Analyse der Beziehung zwischen Stapelspeicher, Heapspeicher und Methodenbereich
Werfen wir zunächst einen Blick auf den Code:
(Empfohlenes Tutorial: Java-Einführungs-Tutorial)
package cn.liang.jvm; public class SimpleHeap { private int id; public SimpleHeap(int id){ this.id = id; } public void show(){ System.out.println("My ID is " + id); } public static void main(String[] args) { SimpleHeap s1 = new SimpleHeap(1); SimpleHeap s2 = new SimpleHeap(2); s1.show(); s2.show(); } }
Beziehungsdiagramm :
(Video-Tutorial-Empfehlung: Java-Video-Tutorial)
Die SimpleHeap-Instanz selbst wird im Heap zugewiesen Speicher
Die Informationen, die die SimpleHeap-Klasse beschreiben, werden im Methodenbereich gespeichert.
Die lokalen Variablen s1 und s2 in der Funktion main() sind im Java-Stack-Speicher gespeichert und auf den Heap verwiesen. Zwei Instanzen des Speichers
Heap-Bereich:
1. Alle gespeicherten Objekte sind Objekte, und jedes Objekt enthält Informationen über a entsprechende Klasse. (Der Zweck der Klasse besteht darin, Betriebsanweisungen zu erhalten)
2. JVM verfügt nur über einen Heap-Bereich (Heap), der von allen Threads gemeinsam genutzt wird. Grundtypen und Objektreferenzen werden nicht im Heap gespeichert, sondern nur das Objekt selbst.
Stapelbereich:
1. Jeder Thread enthält einen Stapelbereich. Im Stapel werden nur Objekte grundlegender Datentypen und Verweise auf benutzerdefinierte Objekte gespeichert Heap. Bereich
2. Die Daten (Originaltypen und Objektreferenzen) in jedem Stapel sind privat und können von anderen Stapeln nicht abgerufen werden.
3. Der Stapel ist in drei Teile unterteilt: Basistyp-Variablenbereich, Ausführungsumgebungskontext und Betriebsanweisungsbereich (Speicherbetriebsanweisungen).
Methodenbereich:
1. Wird auch als statischer Bereich bezeichnet und wird wie der Heap von allen Threads gemeinsam genutzt. Der Methodenbereich enthält alle Klassen- und statischen Variablen.
2. Der Methodenbereich enthält Elemente, die im gesamten Programm immer eindeutig sind, wie z. B. Klassen- und statische Variablen.
Das obige ist der detaillierte Inhalt vonAnalyse der Beziehung zwischen Stapelspeicher, Heapspeicher und Methodenbereich. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!