天天看點

Java虛拟機

Java虛拟機

   Java最大的優勢在于它的虛拟機機制和垃圾回收機制。今天先談Java虛拟機機制。

  Java虛拟機(Java Virtual Machine) 簡稱JVM Java虛拟機是一個想象中的機器,在實際的計算機上通過軟體模拟來實作。Java虛拟機有自己想象中的硬體,如處理器、堆棧、寄存器等,還具有相應的指令系統。Java虛拟機有五部分構成:一組指令集,一組寄存器,一個棧,一個無用單元收集堆,一個方法區域。這五個部分是虛拟機的邏輯成分,但他們必須在真是機器上以某種方式實作。

  Java虛拟機機制的存在可以使java語言在不同平台上運作時而不需要再重新編譯。Java虛拟機屏蔽了與具體平台無關的資訊,使得Java語言編譯程式隻需要生成在Java虛拟機上運作的位元組碼,就可以在多種平台上不加修改地運作。Java虛拟機在執行位元組碼時,把位元組碼解釋成具體平台上的機器指令執行。

Java虛拟機
Java虛拟機

  Java程式先經過編寫生成.java源程式,然後經過Java編譯器編譯生成.class位元組碼,這時運作虛拟機,虛拟機會啟動類加載器,然後類加載器會找到APT中相對應的類進行加載,進行比對後,再進行位元組碼校驗,解釋器進行解釋,最後交給作業系統控制硬體執行。或者通過JIT(just in time)編譯器将.class檔案快速交給作業系統控制硬體執行。需要注意的是:解釋器是每執行一行就解釋一行,而JIT則是将整個代碼一次性翻譯完,然後一次性運作。是以JIT編譯器的運作效率要比解釋器更高。

繼續閱讀