Les applications Java sont généralement compilées en bytecode -LRB- fichier de classe -RRB- qui peuvent s'exécuter sur n'importe quelle machine virtuelle Java -LRB- JVM -RRB- quelle que soit l'architecture de l'ordinateur.
Pour ce faire, Java fait tourner le code du compilateur Java en Java bytecode au lieu du code machine, ce qui signifie que lorsque le programme est exécuté, la machine virtuelle Java interprète le bytecode et le convertit en code machine.