Kurz erklärt
Ein JIT-Compiler übersetzt Bytecode oder Quelltext erst während der Ausführung in Maschinencode – und zwar bevorzugt die Programmstellen, die besonders oft laufen („Hot Spots“).
Genauer
So verbinden virtuelle Maschinen die Portabilität von Bytecode mit der Geschwindigkeit nativen Codes. Das Programm startet interpretiert, die VM misst, welche Funktionen oft aufgerufen werden, und kompiliert diese in optimierten Maschinencode. Das Gegenstück ist die AOT-Kompilierung (*ahead of time*), die vor dem Start übersetzt.