Cechy kodu bajtowego.

     Pliki z rozszerzeniem *.class kompilowane są do *.java, przy czym każdemu plikowi *.class odpowiada jeden plik *.java. Wynikiem działania kompilatora jest program reprezentowany przez tzw. kod bajtowy. Użycie kodu bajtowego jest rozwiązaniem kompromisowym pomiędzy językiem całkowicie interpretowanym (najwolniejszy) a kodem binarnym na konkretną platformę (najszybszy). Musi on być ściśle podporządkowany określonej specyfikacji wirtualnej maszyny Javy. Taka specyfikacja opisuje:

 Kody bajtowe, które i tak muszą być interpretowane przez JVM, zostały zoptymalizowane pod względem wynikowej objętości. Jest to ważniejsze od ewentualnego zmniejszenia wydajności, gdyż prędkości procesorów rosną szybciej niż prędkość sieci.