Heim > Java > javaLernprogramm > Wie läuft das Laden der JVM-Klasse ab?

Wie läuft das Laden der JVM-Klasse ab?

coldplay.xixi
Freigeben: 2020-08-12 15:08:12
Original
3245 Leute haben es durchsucht

Der Prozess des Ladens der JVM-Klasse: Führen Sie zuerst das Laden durch. Überprüfen Sie dann, ob die im Bytestrom der Klassendatei enthaltenen Informationen den Anforderungen der aktuellen virtuellen Maschine entsprechen Initialisieren Sie es auf den Anfangswert des Systems. Anschließend wird es analysiert und initialisiert.

Wie läuft das Laden der JVM-Klasse ab?

JVM-Klassenladevorgang:

1. Laden

Der JVM führt beim Laden diese drei Dinge aus:

1) Erhalten Sie die Binärdatei der Klasse über den vollständig qualifizierten Namen des Klassenbytes stream

2) Konvertieren Sie die statische Speicherstruktur dieses Bytestreams in eine Laufzeitdatenstruktur im Methodenbereich

3) Generieren Sie ein java.lang.Class-Objekt, das die Klasse im Speicherheap als Daten des Klassenzugriffsportals darstellt

2. Überprüfung

Die drei Schritte Überprüfung, Vorbereitung und Analyse können als Verbindungsprozess angesehen werden, der den Bytecode der Klasse mit dem Betriebsstatus der JVM verbindet.

Die Überprüfung dient dazu, sicherzustellen, dass die Klassendatei Die im Byte-Stream enthaltenen Informationen erfüllen die Anforderungen der aktuellen virtuellen Maschine und gefährden nicht die Sicherheit der JVM. Die Überprüfung umfasst hauptsächlich die Überprüfung in den folgenden Aspekten:

 1) Überprüfung des Dateiformats, Überprüfung, ob der Byte-Stream konform ist Klasse Die Spezifikation der Datei, ob sie von der aktuellen Version der virtuellen Maschine verarbeitet werden kann

2) Metadatenüberprüfung, semantische Analyse der durch den Bytecode beschriebenen Informationen, um die Einhaltung der Java-Sprachspezifikation sicherzustellen

3) Bytecode-Überprüfung Bestätigen Sie mithilfe der Datenfluss- und Steuerungsstromanalyse, dass die Semantik zulässig und logisch ist es auf den Anfangswert des Systems. Bei durch final static geänderten Variablen wird

direkt dem benutzerdefinierten Wert zugewiesen. Wie im folgenden Beispiel: Der Anfangswert nach der Vorbereitungsphase ist 0 statt 7

public static int a=7

4 Parsing

Beim Parsen wird die Symbolreferenz im Konstantenpool in eine direkte Referenz umgewandelt (z. B. Adresszeiger des physischen Speichers)

5. Initialisierung

In der Initialisierungsphase beginnt die JVM tatsächlich mit der Ausführung des in der Klasse definierten Java-Codes

1) Die Initialisierungsphase ist der Prozess der Ausführung des Klassenkonstruktors ()-Methode. Die Methode des Klassenkonstruktors() wird vom Compiler generiert, indem er automatisch die Zuweisungsaktionen aller Klassenvariablen in der Klasse sammelt und die Anweisungen im statischen Anweisungsblock (statischer Block) zusammenführt.

2) Wenn Sie beim Initialisieren einer Klasse feststellen, dass die übergeordnete Klasse nicht initialisiert wurde, müssen Sie zuerst die Initialisierung der übergeordneten Klasse auslösen. 3) Die virtuelle Maschine stellt sicher, dass die ()-Methode einer Klasse in einer Multithread-Umgebung korrekt gesperrt und synchronisiert ist.

Verwandte Lernempfehlungen:

Java-Grundlagen-Tutorial

Das obige ist der detaillierte Inhalt vonWie läuft das Laden der JVM-Klasse ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage