Java Virtual Machine
Die Java Virtual Machine (JVM) ist eine Laufzeitumgebung und Virtuelle Maschine für Software. Die Java Virtual Maschine führt den so genannten Bytecode aus, der durch Compilierung von Programmen entsteht, die in aller Regel in der Programmiersprache Java verfasst wurden. Es ist aber sowohl theoretisch wie praktisch möglich, diesen Bytecode auch aus anderen Programmiersprachen heraus oder direkt mit geeigneten Assemblern zu erzeugen. Umgekehrt ist es auch möglich, beim Kompilieren statt Bytecode direkt ausführbare Programme für die jeweilige Architektur zu erzeugen.
Der Sinn der Java Virtual Machine und des Bytecodes ist es, plattformunabhängige Programme zu ermöglichen. Nachteilig dabei ist, dass zur Ausführung des Bytecodes die JVM benötigt wird und Programme, die im Bytecode vorliegen, oft langsamer ausgeführt werden als naitv für die Plattform kompilierte Programme. Letzteres liegt schon in der Natur der Sache, da die JVM den Bytecode interpretiert und damit Rechenzeit für das Parsen des Bytecodes und die dynamische Umsetzung in Maschinensprache verbraucht, was die eigentliche Programmausführung verlangsamt. Um diesen Makel zu beheben, kommen verstärkt Just In Time Compiler (JITC) auf, die den Bytecode zur Laufzeit direkt in Binärcode umsetzen und damit eine native Ausführung des Programms ermöglichen.