1. 程式人生 > >【JVM】JAVA虛擬機器總結(一)——什麼是JVM

【JVM】JAVA虛擬機器總結(一)——什麼是JVM

前言:

Java語言裡負責解釋執行位元組碼檔案的是Java虛擬機器,即JVM——Java Virtual Machine(Java虛擬機器)。

執行Java程式的兩個步驟:

由Java語言編寫的程式需要進過編譯步驟,但這個編譯步驟並不會生成特定平臺的機器碼,而是生成一種與平臺無關的位元組碼(*.class檔案)。這種位元組碼不是可執行的,必須使用Java直譯器來解釋執行。所有Java語言既不是純粹的編譯型語言,也不是純粹的解釋型語言。Java程式的執行過程必須經過先編譯,後解釋兩個步驟。


JVM:

Java語言裡負責解釋執行位元組碼檔案的是Java虛擬機器,JVM是可執行Java位元組碼檔案的虛擬計算機。

所有平臺上的JVM向編譯器提供相同的程式設計介面,而編譯器只需要面向虛擬機器,生成虛擬機器能理解的程式碼,然後由虛擬機器來解釋執行。

當使用Java編譯器編譯Java程式時,生成的是與平臺無關的位元組碼,這些位元組碼不面向任何具體平臺,只面向JVM。

JDK JRE JVM關係:


作用:

不同平臺的JVM都是不同的,但他們都提供了相同的介面。JVM是Java程式跨平臺的關鍵部分,只要為不同的平臺實現了相同的虛擬機器,編譯後的Java位元組碼可以在該平臺上執行。顯然,相同的位元組碼程式需要在不同的平臺上執行,幾乎是不可能的,只有通過中間的轉換器才可以實現,JVM就是這個轉換器。

JVM是一個抽象的計算機,和實際的計算機一樣,它具有指令集並使用不同的儲存區域。負責執行指令,還要管理資料、記憶體和暫存器。

舉栗子:

兩支不同的筆就是不同的作業系統,而同一個筆帽就時Java位元組碼程式,轉換器角色則對應JVM。


總結:

JVM分為向上和向下兩個部分,所有平臺上的JVM向上提供給Java位元組碼程式的介面完全相同,但是向下適應不同平臺的介面則互不相同。