Heim > Java > javaLernprogramm > Wie ist die Bytecode-Struktur von JVM in Java?

Wie ist die Bytecode-Struktur von JVM in Java?

WBOY
Freigeben: 2023-04-22 15:55:08
nach vorne
837 Leute haben es durchsucht

1. Magische Zahl

Die ersten vier Bytes aller .class-Dateien sind magische Zahlen und der feste Wert der magischen Zahl ist 0xCAFEBABE. Die magische Zahl wird am Anfang der Datei platziert, und die JVM kann anhand des Anfangs der Datei bestimmen, ob es sich bei der Datei wahrscheinlich um eine .class-Datei handelt. Ist dies der Fall, werden die nachfolgenden Vorgänge fortgesetzt.

2. Versionsnummer

Die Versionsnummer sind die 4 Bytes nach der magischen Nummer. , die letzten 2 Bytes zeigen die Hauptversionsnummer.

Die Bytes nach der Hauptversionsnummer sind die konstanten Pooleinträge. Im Konstantenpool werden zwei Arten von Konstanten gespeichert: Literale und symbolische Referenzen. Literale werden im Code als endgültige konstante Werte deklariert, und Symbole beziehen sich auf die global qualifizierten Namen von Kategorien und Schnittstellen, die Namen und Spezifizierer von Feldern sowie die Namen und Spezifizierer von Methoden. Der Konstantenpool ist in zwei Teile unterteilt: den Konstantenpoolzähler und den Konstantenpooldatenbereich.

3. Konstantenpool

Die zwei Bytes nach dem Ende des Konstantenpools beschreiben, ob die Klasse eine Klasse oder eine Schnittstelle ist, und ob es sich um Dekorationszeichen wie Public, Abstract und Final handelt.

4. Zugriffsflag

Die zwei Bytes nach dem Ende des Konstantenpools beschreiben, ob die Klasse eine Klasse oder eine Schnittstelle ist, und ob es sich um Public, Abstract, Final und andere Modifikatoren handelt.

5. Aktueller Klassenname

Die zwei Bytes nach dem Zugriffsflag beschreiben den vollständig qualifizierten Namen der aktuellen Klasse. Der von diesen beiden Bytes gespeicherte Wert ist der Indexwert im Konstantenpool. Entsprechend dem Indexwert kann der vollständig qualifizierte Name dieser Klasse im Konstantenpool gefunden werden.

6. Name der übergeordneten Klasse

Die zwei Bytes nach dem aktuellen Klassennamen beschreiben den vollständig qualifizierten Namen der übergeordneten Klasse, wie oben , save ist auch der Indexwert im Konstantenpool.

7. Schnittstelleninformationen

Nach dem Namen der übergeordneten Klasse steht ein Zwei-Byte-Schnittstellenzähler, der die von der Klasse implementierte Schnittstelle beschreibt Menge der übergeordneten Klasse. Die nächsten n Bytes sind die Indexwerte der String-Konstanten für alle Schnittstellennamen.

8, Feldtabelle

Feldtabelle wird verwendet, um in Klassen und Schnittstellen deklarierte Variablen zu beschreiben, einschließlich Variablen auf Klassenebene und Instanzvariablen. Innerhalb der Methode deklarierte lokale Variablen werden jedoch nicht berücksichtigt.

Was sind die grundlegenden Datentypen von Java?

2. Gleitkommatyp, ein Datentyp, der zur Darstellung von Dezimalzahlen verwendet wird.

3. Das Schlüsselwort des Zeichentyps ist „char“.

4. Der boolesche Typ ist der grundlegende Datentyp, der logische Werte darstellt.

Das obige ist der detaillierte Inhalt vonWie ist die Bytecode-Struktur von JVM in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
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