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!
Stellungnahme: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