Java ist allgemein bekannt für seine Plattformunabhängigkeit und effiziente Ausführung. Dieser Artikel führt Sie durch den gesamten Java-Ausführungsprozess, vom Schreiben von Human-Lesbar-Code bis hin zum Ausführen auf verschiedenen Plattformen. Wir werden die Rollen von JDK, JVM und JRE sowie die Schritte zur Erstellung und Ausführung von Java -Programmen behandeln.
1. Key Java -Komponenten
Bevor Sie in den Ausführungsprozess eintauchen, ist es wichtig, die drei Kernkomponenten in Java zu verstehen:
-
JDK (Java -Entwicklungskit)
- Das JDK ist ein vollwertiges Softwareentwicklungskit, mit dem Sie Java-Programme schreiben, kompilieren und ausführen können.
- Es enthält die JVM (Java Virtual Machine) und JRE (Java -Laufzeitumgebung) sowie wesentliche Entwicklungswerkzeuge wie der Compiler (Javac).
- JDK wird von Entwicklern zum Schreiben und Kompilieren von Code verwendet, der später vom JVM ausgeführt wird.
-
JVM (Java Virtual Machine)
- Der JVM ist der Motor, der Java -Bytecode ausführt. Es macht Java plattformunabhängig, indem es die zugrunde liegende Hardware- und Betriebssystem abstrahiert.
- Java -Programme werden in Bytecode zusammengestellt, das das JVM interpretiert und ausführt, sodass das gleiche Java -Programm mit einem JVM auf jeder Maschine ausgeführt werden kann.
-
jre (Java -Laufzeitumgebung)
- Die JRE bietet die erforderlichen Bibliotheken und Ressourcen, um Java -Programme auszuführen, einschließlich des JVM.
- Es enthält die Kernklassen wie String und Array, von denen Ihr Java -Programm möglicherweise abhängt.
- Die JRE enthält keine Entwicklungstools wie der Compiler, was es für den Ausführen von Java -Anwendungen geeignet ist, jedoch nicht für die Entwicklung.
2. Der Java -Ausführungsprozess
-
Schritt 1: Schreiben Sie den Code
- Sie schreiben mit dem Java -Code, der normalerweise in .java -Dateien gespeichert wird. Dieser Code ist menschlich lesbar und folgt der Java-Syntax.
-
Schritt 2: Kompilieren Sie den Code
- Sobald der Code fertig ist, wird der Javac-Compiler verwendet, um den menschlich-lesbaren .java-Code in Bytecode (in .class-Dateien gespeichert) umzuwandeln.
- Bytecode ist ein binäres Format, das für alle Betriebssysteme gleich ist. Dieser Bytecode kann dann auf jeder Plattform mit einem JVM ausgeführt werden, um die Unabhängigkeit der Plattform zu gewährleisten.
-
Schritt 3: Führen Sie den Bytecode mit JVM
aus
- 3.1 Laden des Bytecode
- Wenn Sie versuchen, das Java -Programm auszuführen, lädt der JVM den Bytecode (d. H. Die .class -Datei) in den Speicher.
- Der Klassenloader ist dafür verantwortlich, die Klasse basierend auf dem vom Benutzer angegebenen Klassennamen zu finden und zu laden.
- Wenn die Klasse nicht gefunden werden kann, wird eine Klasse -NotfoundException geworfen.
- Wenn die Klasse gefunden wird, lädt das JVM sie in den Speicher. Statische Methoden, Variablen und Daten aus der Klasse werden im Methodenbereich gespeichert, ein besonderer Teil des JVM -Speichers.
- 3.2 Ausführen des Bytecode
- Sobald die Klasse geladen ist, sucht die JVM nach der Main () -Methode (dem Einstiegspunkt des Programms), um die Ausführung zu beginnen.
- Wenn die main () -Methode gefunden wird, beginnt der Ausführungsprozess.
3. Ausführungsmechanismus
Es gibt zwei Hauptansätze, mit denen der JVM Bytecode ausführt: Interpreter und Just-in-Time (JIT) -Kompiler.
4. JVM -Speicherbereiche
- Der JVM verteilt während der Ausführung Speicher für verschiedene Teile des Programms. Einige Schlüsselbereiche umfassen:
-
Methodenbereich: enthält Informationen zu Klassen, Methoden und statischen Variablen.
-
Haufen Bereich: speichert Objekte, die während der Laufzeit erstellt wurden.
-
Stack Area: speichert lokale Variablen und Methodenaufrufe.
-
Programmzähler (PC): Ein Register, das auf die aktuelle Anweisung hinweist.
5. Zusammenfassung des Ausführungsflusss
-
Code schreiben: Java -Code wird in .java -Dateien geschrieben.
-
kompilieren: Der Code wird vom Javac -Compiler in Bytecode (.class -Dateien) kompiliert.
-
Bytecode laden: Der JVM mit dem Classloader lädt den Bytecode in den Speicher.
-
Einstiegspunkt finden: Die JVM sucht nach der Main () -Methode, um die Ausführung zu starten.
-
Ausführung über Interpreter oder JIT:
-
Interpreter: führt die Bytecode -Zeile für Zeile aus (langsamer).
-
JIT -Compiler: Compiles Hot Spots in nativen Maschinencode für eine schnellere Ausführung (schneller).
Die Kombination von Bytecode, JVM und dem JIT-Compiler stellt sicher, dass Java sowohl plattformunabhängig als auch effizient ist. Der Ausführungsfluss verwendet den Interpreter für den Einfachheit halber und den JIT -Compiler für die Leistungsoptimierung, sodass Java -Programme effizient über verschiedene Plattformen hinweg ausgeführt werden können.
Rekapitulieren:
- Die JVM spielt eine Schlüsselrolle, um sicherzustellen, dass der Java -Code tragbar und effizient ist. Es lädt zuerst den Bytecode und führt ihn dann entweder durch einen Interpreter (langsamer) oder einen JIT -Compiler (schneller) aus.
- Durch die Verwendung von JIT- und Hotspots optimiert der JVM die Leistung und behält gleichzeitig die Möglichkeit, dieselbe Bytecode auf verschiedenen Plattformen auszuführen.
Das obige ist der detaillierte Inhalt vonVerständnis des Java -Ausführungsprozesses: vom Code zur Ausführung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!