Werbung
Die Java Virtual Machine (JVM) ist ein echter Name-Dropper, wenn Sie in Java programmieren. Entgegen dem Namen kann die Java Virtual Machine auch in Bezug auf andere Programmiersprachen angetroffen werden.
Im Allgemeinen ist es nicht erforderlich zu wissen, was die Java Virtual Machine ist oder was sie tut, um in Java programmieren zu können. Wenn Sie sich jedoch mit dem Innenleben einer Maschine vertraut machen, können Sie Ihr Verständnis und Ihre allgemeinen Einsichten verbessern.
Dieser Artikel behandelt die Idee der Java Virtual Machine, was sie für Sie tut und einige der wichtigsten Vor- und Nachteile. Obwohl ich versucht habe, es einfach zu halten, und es definitiv fortgeschrittenere Literatur zu diesem Thema gibt, wird ein rudimentäres Verständnis von Java und Programmierung erwartet.
Hochsprachen
Die Semantik einer Programmiersprache ist so konzipiert, dass sie unserer natürlichen Sprache nahe kommt und gleichzeitig präzise und für eine Maschine leicht zu interpretieren ist. Wie Sie wahrscheinlich wissen, unterscheidet sich die Programmiersprache vollständig vom Maschinencode, dem Befehlssatz, mit dem ein Computer ein Programm erstellt und ausführt. Das nennen wir
Hochsprachen; eine oder mehrere Abstraktionsebenen vom Maschinencode.Bevor es ausgeführt werden kann, muss der Code auf hoher Ebene zuerst interpretiert werden. Viele Programmierschnittstellen werden im Voraus kompiliert (AOT-Zusammenstellung) für eine bestimmte Plattform. Dies macht das Programm zur Laufzeit effizienter, aber weitaus weniger kompatibel mit verschiedenen Plattformen. Im Gegensatz dazu arbeitet Java mit einer Zwischensprache namens Java-Bytecode und das Java virtuelle Maschine.
JVM & Java Bytecode
Wenn Ihr Java-Projekt erstellt wird, übersetzt es den Quellcode (enthalten in *).Java Quelldateien) zu Java-Bytecode (meistens in * .class-Dateien enthalten). Dies bringt Ihren High-Level-Code dem Maschinencode einen Schritt näher, aber noch nicht ganz da. Dieser Bytecode ist eine Sammlung kompakter Anweisungen. für eine Maschine leichter zu interpretieren, aber weniger lesbar.
Wenn Sie eine Java-Anwendung auf Ihrem Computer, Mobiltelefon oder einer anderen Java-fähigen Plattform ausführen, übergeben Sie diesen Java-Bytecode im Wesentlichen an die Java Virtual Machine. Der Interpreter in der Java Virtual Machine beginnt normalerweise zur Laufzeit mit der Kompilierung des gesamten Bytecodes nach den Prinzipien der sogenannten Just-in-Time-Kompilierung. Dies führt zu der typischen, wenn auch häufig geringfügigen Verzögerung beim Öffnen einer Java-Anwendung, verbessert jedoch im Allgemeinen die Programmleistung im Vergleich zu interpretierte Zusammenstellung.

Der Hauptvorteil dieses Systems ist die erhöhte Kompatibilität. Da Ihre Anwendungen in einer virtuellen Maschine anstatt direkt auf Ihrer Hardware ausgeführt werden, kann der Entwickler und programmieren Erstellen Sie ihre Anwendung einmal, die dann mit einer Implementierung von Java Virtual auf jedem Gerät ausgeführt werden kann Maschine. Dieses Prinzip hat den Java-Slogan hervorgebracht: „Einmal schreiben, überall laufen.”
Pro: Kompatibilität und erhöhte Sicherheit
Neben der Codekompatibilität bietet die Java Virtual Machine weitere Vorteile. Eine der wichtigsten davon ist die relative Sicherheit von Java-Programmen aufgrund der Java Virtual Machine. Sicherheit, was bedeutet, dass ein Programm, das in einer virtuellen Maschine ausgeführt wird, das Betriebssystem des Benutzers mit weitaus geringerer Wahrscheinlichkeit stört oder Datendateien beschädigt, wenn Fehler auftreten.
Con: Verschiedene JVM-Implementierungen und Debugging
Eine der Hauptkritikpunkte gegen die Codekompatibilität und die Java Virtual Machine ist auf die vielen verschiedenen Implementierungen der letzteren zurückzuführen. Sie sehen, die Java Virtual Machine ist keine Software. Oracle, die Eigentümer von Java, haben die Implementierung der Java Virtual Machine, aber andere Personen können ihre erstellen, wenn sie verschiedene praktische und vertragliche Ansprüche erfüllt.
Diese unterschiedlichen Implementierungen bedeuten, dass Ihr Code möglicherweise reibungslos auf einer Java Virtual Machine ausgeführt wird, auf einer anderen jedoch abstürzt und brennt. Obwohl Sie in der Praxis Ihren Code einmal schreiben und überall ausführen können, manchmal komplexeren Code muss noch in verschiedenen Java Virtual Machine-Implementierungen debuggt werden, um einen korrekten Betrieb sicherzustellen.
Haben Sie Erfahrung mit der Arbeit mit der Java Virtual Machine? Wenn ja, gibt es etwas, das ich hier verpasst habe und das erwähnt werden sollte?
Bildnachweis: Michaelaw, Dcoetzee
Ich bin ein Schriftsteller und Informatikstudent aus Belgien. Sie können mir mit einer guten Artikelidee, Buchempfehlung oder Rezeptidee immer einen Gefallen tun.