Plattformübergreifende Gründe: Java Virtual Machine (JVM) kann plattformübergreifend sein; JAVA-Programme werden nicht direkt auf dem Computer (CPU) ausgeführt, sondern auf der Java Virtual Machine (JVM). Alle verfügen über eine eigene virtuelle JVM-Maschine, sodass die JAVA-Sprache plattformübergreifend verwendet werden kann. Java kompiliert zunächst Java-Dateien in binäre Bytecode-Klassendateien, und dann interpretiert und führt JVM die Klassendateien aus. Da Java auf JVM ausgeführt wird, kann sein Code ohne Änderung auf JVMs auf verschiedenen Plattformen ausgeführt werden.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, Java 8-Version, DELL G3-Computer.
Warum kann die JAVA-Sprache plattformübergreifend sein?
Der Grund, warum Java plattformübergreifend sein kann, liegt darin, dass die Java Virtual Machine (JVM) plattformübergreifend sein kann.
Denn der vom Java-Programm kompilierte Code ist kein Code, der direkt vom Hardwaresystem ausgeführt werden kann, sondern ein „Zwischencode“ – Bytecode. Anschließend werden verschiedene Java Virtual Machines (JVM) auf unterschiedlichen Hardwareplattformen installiert und die JVM „übersetzt“ den Bytecode in Code, der von der entsprechenden Hardwareplattform ausgeführt werden kann. Daher besteht für Java-Programmierer keine Notwendigkeit, die Hardwareplattform zu berücksichtigen. So kann Java plattformübergreifend sein.
Da es über eine virtuelle Maschine (JVM) verfügt, wird das JAVA-Programm nicht direkt auf dem Computer, sondern auf der Java Virtual Machine (kurz JVM) ausgeführt Jede Plattform verfügt über eine eigene virtuelle Maschine (JVM), sodass die JAVA-Sprache plattformübergreifend verwendet werden kann.
Java-Code läuft nicht direkt auf der CPU, sondern auf der Java Virtual Machine (JVM).
Java kompiliert zunächst die Java-Datei in eine Klassendatei mit binärem Bytecode, und dann interpretiert der JVM die Klassendatei und führt sie aus.
Da Java auf JVM ausgeführt wird, kann sein Code ohne Änderung auf JVM auf verschiedenen Plattformen ausgeführt werden.
Wissen erweitern:
Die professionelle Erklärung von JVM lautet wie folgt
Java Virtual Machine (kurz JVM) ist eine Spezifikation für Computergeräte. Dabei handelt es sich um einen fiktiven Computer, der durch die Simulation verschiedener Computerfunktionen auf einem tatsächlichen Computer implementiert wird. Die Java Virtual Machine besteht aus einer Reihe von Bytecode-Anweisungen, einer Reihe von Registern, einem Stapel, einem Garbage-Collection-Heap und einem Speichermethodenfeld. Die JVM schirmt die Informationen ab, die sich auf die spezifische Betriebssystemplattform beziehen, sodass das Java-Programm nur den Zielcode (Bytecode) generieren muss, der auf der virtuellen Java-Maschine ausgeführt wird, und ohne Änderungen auf mehreren Plattformen ausgeführt werden kann. Wenn die JVM Bytecode ausführt, interpretiert sie letztendlich den Bytecode in Maschinenanweisungen zur Ausführung auf der spezifischen Plattform.
Es ist normal, wenn Sie die obige Erklärung nicht verstehen. Ich wollte zunächst keine professionelle Erklärung veröffentlichen, aber nachdem ich darüber nachgedacht hatte, habe ich beschlossen, es nicht zu tun ein detailliertes Verständnis der JVM. Wenn Sie die professionelle Erklärung nicht verstehen, sage ich es Ihnen im Klartext:
JVM, auch bekannt als Java Virtual Machine, ist eine Plattform, die in JRE enthalten ist. Wenn Sie ein Java-Programm ausführen müssen, kompiliert die JVM es und führt es für Sie aus. Der von uns geschriebene Java-Quellcode generiert nach der Kompilierung eine .class-Datei, die als Bytecode-Datei bezeichnet wird. Die Java Virtual Machine ist für die Übersetzung von Bytecode-Dateien in Maschinencode für eine bestimmte Plattform und deren anschließende Ausführung verantwortlich.
Und die JVM ist in viele Systemversionen unterteilt, egal auf welcher Plattform Sie das Java-Programm schreiben, ob Windows, Linux oder macOS, Sie müssen nur die JVM finden und sie wird erfolgreich kompiliert . und Ausführung. Mit anderen Worten: Solange die entsprechende JVM auf verschiedenen Plattformen installiert ist, können die Bytecode-Dateien und die von uns geschriebenen Java-Programme ausgeführt werden. Aus diesem Grund verfügt Java über gute plattformübergreifende und plattformunabhängige Funktionen.
Während dieses Prozesses hat das von uns geschriebene Java-Programm keine Änderungen vorgenommen. Es kann auf verschiedenen Plattformen nur über die „mittlere Schicht“ der JVM ausgeführt werden, wodurch der Zweck „einmal kompilieren und überall ausführen“ wirklich realisiert wird.
JVM ist eine „Brücke“, eine „Middleware“, und der Schlüssel zum plattformübergreifenden Java-Code wird zunächst in Bytecode-Dateien kompiliert, und dann übersetzt die JVM die Bytecode-Dateien in Maschinensprache, wodurch das erreicht wird Zweck der Ausführung von Java-Programmen.
Hinweis: Das Ergebnis der Kompilierung ist nicht die Generierung von Maschinencode, sondern die Generierung von Bytecode. Der Bytecode kann nicht direkt ausgeführt werden und muss von der JVM in Maschinencode übersetzt werden, bevor er ausgeführt werden kann. Der durch Kompilierung auf verschiedenen Plattformen generierte Bytecode ist derselbe, aber der von der JVM übersetzte Maschinencode ist unterschiedlich.
Daher muss das Ausführen von Java-Programmen über die Unterstützung von JVM verfügen, da das kompilierte Ergebnis kein Maschinencode ist und von der JVM erneut übersetzt werden muss, bevor es ausgeführt werden kann. Auch wenn Sie Ihr Java-Programm in eine ausführbare Datei (z. B. .exe) packen, benötigen Sie dennoch JVM-Unterstützung.
Hinweis: Cross-Plattform ist ein Java-Programm, keine JVM. JVM wird in C/C++ entwickelt und ist kompilierter Maschinencode. Es ist nicht möglich, verschiedene Versionen von JVM auf verschiedenen Plattformen zu installieren.
Über die Ausführungseffizienz von JVM
In den ersten Jahren nach der Einführung von Java waren die Leute unterschiedlicher Meinung. Die Interpretation von Bytecode muss viel langsamer sein als die Ausführung von Maschinencode bei voller Geschwindigkeit. Lohnt es sich, im Austausch für plattformübergreifende Vorteile Einbußen zu machen?
Die JVM verfügt jedoch über eine Option, den am häufigsten verwendeten Bytecode in Maschinencode zu übersetzen und zu speichern, ein Prozess, der als Just-in-Time-Kompilierung bezeichnet wird. Dieser Ansatz ist so effektiv, dass die .NET-Plattform von Microsoft auch virtuelle Maschinen verwendet.
Heutzutage sind Just-in-Time-Compiler so gut, dass sie sogar zu Konkurrenten herkömmlicher Compiler geworden sind. In einigen Fällen übertreffen sie sogar herkömmliche Compiler, da die JVM Laufzeitinformationen überwachen kann. Beispielsweise kann ein Just-in-Time-Compiler häufig verwendeten Code überwachen und optimieren und Funktionsaufrufe (d. h. „Inline“) eliminieren.
Java hat jedoch einen zusätzlichen Overhead, den C/C++ nicht hat, wodurch kritische Anwendungen langsamer werden. Beispielsweise verwendet Java eine plattformunabhängige Zeichenmethode, sodass die Ausführung des GUI-Programms (Client-Programms) ebenfalls langsam dauert.
Empfohlene verwandte Video-Tutorials: Java-Video-Tutorial
Das obige ist der detaillierte Inhalt vonWarum ist Java plattformübergreifend?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!