Java 編譯器將 Java 程序編譯成虛擬機能夠識別的二進制代碼,這種代碼稱為字節碼(Bytecode)。字節碼就是虛擬機的機器指令,它與平台無關,有統一的格式,不依賴於具體的硬件環境,只運行在 JVM 上。JVM 在執行字節碼文件時,把字節碼解釋成具體的機器指令執行。
Java 程序可以經解釋器得到字節碼,所生成的字節碼經過精心設計,並進行優化,提高了運行速度。現在的 Java 版本中又加入了即時編譯功能(just-in-time 編譯器,簡稱 JIT 編譯器),編譯器將字節碼轉換成本機的機器代碼,然后能夠以較高速度執行,使得執行效率大幅度提高,基本達到了編譯語言的水平。