Java Virtual Machine (JVM)
Eine Java Virtual Machine (JVM), eine Implementierung der JVM-Spezifikation, interpretiert kompilierten Java-Binärcode (Bytecode genannt) für den Prozessor (oder die Hardware) eines Computers, damit dieser die Anweisungen eines Java-Programms ausführen kann.
Java wurde entwickelt, um die Erstellung von Anwendungsprogrammen zu ermöglichen, die auf jeder Plattform ausgeführt werden können, ohne dass sie vom Programmierer für jede einzelne Plattform neu geschrieben oder kompiliert werden müssen. Eine Java Virtual Machine (JVM) macht dies möglich, da sie die spezifischen Befehlslängen und andere Besonderheiten der Plattform kennt.
Die Spezifikation der Java Virtual Machine definiert eine abstrakte – und nicht eine reale – Maschine oder einen Prozessor. Die Spezifikation spezifiziert einen Befehlssatz, einen Satz von Registern, einen Stack, einen Garbage Heap und einen Methodenbereich.
Sobald eine Java Virtual Machine für eine bestimmte Plattform implementiert wurde, kann jedes Java-Programm (das nach der Kompilierung als Bytecode bezeichnet wird) auf dieser Plattform laufen. Eine Java Virtual Machine kann den Bytecode entweder eine Anweisung nach der anderen interpretieren (und ihn auf eine reale Prozessoranweisung abbilden) oder der Bytecode kann mit einem sogenannten Just-in-Time-Compiler für den realen Prozessor weiter kompiliert werden.