Eine virtuelle Maschine ist ein Programm, das zusätzlich auf dem Prozessor läuft und den ( Java- ) Programmcode interpretiert und in den jeweiligen Maschinecode ( "Assembler" ) übersetzt.
Es gibt inzwischen auch schon Prozessoren, die den JavaProgrammcode direkt verstehen. Dadurch haben wir einen Geschwindigkeitsgewinn.
Javaprogramme werden üblich zur Laufzeit in Maschinencode übersetzt.
Inzwischen gibt es Compiler, die Javaprogramme in Plattformabhängig Programme übersetzen. Dadurch hat man zwar einen Geschwindigkeitsgewinn, aber verliert die Portabilität.
Durch ein Programm, das auf einer virtuellen Maschine lät, erhält man ein portierbares Programm. Es muß lediglich für die Hardware und das Betriebssystem eine virtuelle Maschine der Sprache existieren.
In Html-Browsern ist die virtuelle Javamaschine enthalten. Wenn sie nicht enthalten ist, laufen die Applets nicht.
Es gibt auch Internetbrowser, die eine andere Möglichkeit zur Performancesteigerung bieten. Die Javaprogramme werden beim Laden in den Maschinencode übersetzt und beim Aufrufen wird dieser nur noch ausgeführt.