Heim >Java >javaLernprogramm >Detaillierte Erläuterung der Java Virtual Machine
1. Die Hauptstruktur von JVM ist wie folgt:
2. Einführung in die Funktionen jedes Bereichs
1), Methodenbereich:
(1) Gewohnt Speichern Sie von der virtuellen Maschine geladene Klasseninformationen, Konstanten , statische Variablen usw., sind von jedem Thread gemeinsam genutzte Speicherbereiche ; >
(2) Der Standard-Mindestwert beträgt 16 MB und der Maximalwert beträgt 64 MB. Sie können die Größe des Methodenbereichs durch die Parameter -XX:PermSize und -XX:MaxPermSize begrenzen; ) Es gibt auch einen Teil des Methodenbereichs, derLaufzeitkonstantenpool
hauptsächlich zum Speichern von Literalen und Symbolen verwendet wird, die während der Kompilierung generiert werdenReferenzen. Konstanten können auch zur Laufzeit generiert werden, z die interne Methode von String; (4) Wie der Java-Heap benötigt er keinen kontinuierlichen Speicher und kann zwischen fester Größe und erweiterbarer Größe wählen. Sie können sich auch dafür entscheiden, die Garbage Collection nicht zu implementieren.
2), Stapel:
(1) Der Java Virtual Machine Stack ist Thread privat
und derLebenszyklus ist dasselbe wie Die Threads sind gleich. (2) Bei der Ausführung jeder Methode wird gleichzeitig ein Stapelrahmen erstellt, der zum Speichern lokaler Variablentabellen, Operationsstapel, dynamischer Links, Methodenexits und anderer Informationen verwendet wird. Die Ausführung jeder Methode entspricht dem Betreten und Verlassen des Stapelrahmens
. (3) Die lokale Variablentabelle im Stapel der virtuellen JVM-Maschine speichert verschiedene grundlegendeDatentypen
, die zur Kompilierungszeit bekannt sind. Der für die lokale Variablentabelle erforderliche Speicherplatz wird zur Kompilierungszeit zugewiesen.(4) Der Stapelrahmen ist die grundlegende Datenstruktur während der Methodenlaufzeit.
3), Nativer Methodenstapel:
(1) Der lokale Methodenstapel bedient die nativen Methoden, die von der virtuellen JVM-Maschine verwendet werden.
4), Heap:
(1) Der größte Speicherbereich, der von der Java Virtual Machine verwaltet wird.
(2) Der Java-Heap ist ein von allen Threads gemeinsam genutzter Bereich und wird beim Start der virtuellen Maschine erstellt. (3) Der einzige Zweck des Speicherbereichs besteht darin,Objekt
-Instanzen zu speichern. Alle Objektinstanzen undArrays weisen Speicher auf dem Heap zu. (4) Der Java-Heap ist der Speicherbereich, der hauptsächlich vom JVM-Garbage-Collection-Mechanismus verwaltet wird. Der Java-Heap kann sich in einem diskontinuierlichen Speicherbereich im Speicher befinden.
5), Programmzähler:
(1) Ein relativ kleiner Speicherplatz, dessen Funktion als Zeilennummerangabe des vom aktuellen Thread ausgeführten Bytecodes angesehen werden kann. Zähler
(2) Wenn der Bytecode-Interpreter funktioniert, ändert er den Wert dieses Zählers, um die nächste auszuführende Bytecode-Anweisung, Verzweigung, Schleife , Sprung, Ausnahmebehandlung, Thread-Wiederherstellung usw. müssen sich alle auf den Programmzähler verlassen.
6), Laufzeitkonstantenpool:
(1) Der Laufzeitkonstantenpool ist Teil des Methodenbereichs. (2) Zusätzlich zu der Klassenversion, den Feldern, der Beschreibung der MethodeSchnittstelle und anderen Informationen in der Klasse-Datei gibt es auch einen konstanten Pool zur Speicherung Verschiedener Während der Kompilierung generierte Literale und Symbolreferenzen werden nach dem Laden der Klasse im Laufzeitkonstantenpool im Methodenbereich gespeichert
.7), direkter Speicher:
Da Java NIO und die IO-Methode für Kanal und Puffer eingeführt hat, können Sie die native Methode aufrufen, um Off-Heap direkt zuzuweisen Dieser Off-Heap-Speicher ist lokaler Speicher und hat keinen Einfluss auf die Größe des Heap-Speichers. Verwandte Artikel:Detailliertes Verständnis der Java Virtual Machine
Java Virtual Machine Learning – Klassenlademechanismus
Java Virtual Machine Learning – Zuweisung und Recycling von Objektspeicher
Java Virtual Machine Learning – Objektzugriff
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Java Virtual Machine. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!