Java虛擬機器是什麼?

weixin_34320159發表於2018-04-22

一句話解釋:它是一種基於下層的作業系統和硬體平臺並利用軟體方法來實現的抽象的計算機,可以在上面執行java的位元組碼程式。

JVM是Java程式執行的容器,但是他同時也是作業系統的一個程式,因此他也有他自己的執行的生命週期,也有自己的程式碼和資料空間。

JVM在整個jdk中處於最底層,負責與作業系統的互動,用來遮蔽作業系統環境,提供一個完整的Java執行環境,因此也叫虛擬計算機。

如果把Java原程式想象成我們的C++原程式,Java原程式編譯後生成的位元組碼就相當於C++原程式編譯後的80x86的機器碼(二進位制程式檔案),JVM虛擬機器相當於80x86計算機系統,Java直譯器相當於80x86CPU。在80x86CPU上執行的是機器碼,在Java直譯器上執行的是Java位元組碼。Java直譯器相當於執行Java位元組碼的“CPU”,但該“CPU”不是通過硬體實現的,而是用軟體實現的。Java直譯器實際上就是特定的平臺下的一個應用程式。只要實現了特定平臺下的直譯器程式,Java位元組碼就能通過直譯器程式在該平臺下執行,這是Java跨平臺的根本。當前,並不是在所有的平臺下都有相應Java直譯器程式,這也是Java並不能在所有的平臺下都能執行的原因,它只能在已實現了Java直譯器程式的平臺下執行。

相關文章