Java最大的優勢在于它的虛擬機機制和垃圾回收機制。今天先談Java虛擬機機制。
 
  Java虛擬機(Java Virtual Machine) 簡稱JVM Java虛擬機是一個想象中的機器,在實際的計算機上通過軟件模擬來實現。Java虛擬機有自己想象中的硬件,如處理器、堆棧、寄存器等,還具有相應的指令系統。Java虛擬機有五部分構成:一組指令集,一組寄存器,一個棧,一個無用單元收集堆,一個方法區域。這五個部分是虛擬機的邏輯成分,但他們必須在真是機器上以某種方式實現。
 
  Java虛擬機機制的存在可以使java語言在不同平臺上運行時而不需要再重新編譯。Java虛擬機屏蔽了與具體平臺無關的信息,使得Java語言編譯程序只需要生成在Java虛擬機上運行的字節碼,就可以在多種平臺上不加修改地運行。Java虛擬機在執行字節碼時,把字節碼解釋成具體平臺上的機器指令執行。
 
 
 
 
  Java程序先經過編寫生成.java源程序,然后經過Java編譯器編譯生成.class字節碼,這時運行虛擬機,虛擬機會啟動類加載器,然后類加載器會找到APT中相對應的類進行加載,進行匹配后,再進行字節碼校驗,解釋器進行解釋,最后交給操作系統控制硬件執行。或者通過JIT(just in time)編譯器將.class文件快速交給操作系統控制硬件執行。需要注意的是:解釋器是每執行一行就解釋一行,而JIT則是將整個代碼一次性翻譯完,然后一次性運行。因此JIT編譯器的運行效率要比解釋器更高。