Java Virtual Machine (JVM)

Definition - Was bedeutet Java Virtual Machine (JVM)?

Die Java Virtual Machine (JVM) ist eine Abstraktionsschicht zwischen einer Java-Anwendung und der zugrunde liegenden Plattform. Wie der Name schon sagt, fungiert die JVM als „virtuelle“ Maschine oder Prozessor. Mit den Bytecodes, aus denen das Programm besteht, kommunizieren sie mit einer physischen Maschine. Sie interagieren jedoch tatsächlich mit der JVM.

Technische.me erklärt Java Virtual Machine (JVM)

Mit JVM kann die Java-Portabilität in plattform- und hardwareunabhängigen Anwendungen ausgeführt werden. Es ist ein großer Teil der Philosophie "Einmal schreiben, überall laufen (WORA)". Die JVM ist tatsächlich Teil der Java Runtime Environment (JRE). Es ist die JRE (JVM plus Basisklassen), mit der Java-Bytecode auf jeder Plattform ausgeführt werden kann. Bytecodes, die von der JVM interpretiert werden, rufen einfach die in der JRE gefundenen Klassen auf, wenn sie Aktionen ausführen müssen, die sie nicht selbst ausführen können. Einige Aktionen, z. B. für die zugrunde liegende Hardware oder das Betriebssystem, werden von der JVM ausgeführt. Bytecodes haben selbst keine Funktionalität und benötigen die JVM, um viele Aufgaben für sie zu erledigen. Diese wahrgenommene Einschränkung ist tatsächlich ein Vorteil. Erstens können Java-Programme im Vergleich zu anderen ausführbaren Programmen sehr klein sein. Zweitens, und was noch wichtiger ist, können sie sehr portabel sein. Da jede JVM auf eine bestimmte Plattform zugeschnitten ist, kann ein Java-Programm nur ausgeführt werden, wenn: (1) eine entsprechende JVM für sie erstellt wurde und; (2) Diese JVM wurde darauf installiert. Die Portabilität von Java-Programmen hängt daher vollständig vom Vorhandensein einer bestimmten JVM ab. Die Kommunikation zwischen einer Anwendung und jeder zugrunde liegenden Plattform kann sehr komplex sein, aber die JVM handhabt sie gut, indem sie eine Abstraktionsebene zwischen beiden bereitstellt. Daher müssen sich Entwickler nicht der Feinheiten bewusst sein, die für jedes Anwendungs-Plattform-Paar erforderlich sind.