Java啟蒙之路-Java虛擬機
Java虛擬機概念
Java虛擬機(Java Virtual Machine,JVM)是一個抽象的計算機,和實際的計算機一樣,通過模擬仿真來實現(xiàn)計算機功能。Java虛擬機不僅有自己本身的硬件架構(gòu),如處理器、堆棧、寄存器,還具有相應的指令系統(tǒng)。
Java的運行機制
Java的跨平臺是它的主要特性之一,而Java虛擬機是實現(xiàn)這一特性的關鍵。Java程序的整個執(zhí)行過程包括編譯階段與運行階段,其中涉及到Java源程序、Java字節(jié)碼文件、Java類庫和Java虛擬機以及最后的平臺。
在Java編譯階段,編寫的Java源程序(.java)經(jīng)過Java編譯器編譯成字節(jié)碼文件(.class)后并保存起來。
在Java運行階段,獲取到保存的.class字節(jié)碼文件以及源程序中引用的類庫Java API的字節(jié)碼文件,然后通過類裝載器(Class Loader)將這些文件一并裝載到內(nèi)存緩沖區(qū),接著Java虛擬機開始執(zhí)行這些文件并生成目標代碼(字節(jié)碼)。由于Java虛擬機可以將字節(jié)碼程序跟具體的操作系統(tǒng)及硬件平臺分割開來,只要各平臺實現(xiàn)了Java虛擬機,任何Java程序就可以在其上面運行了。

Java程序執(zhí)行過程
類比理解:《長江七號》
《長江七號》里的那個七仔是外星人,可是它說的話地球人聽不懂啊(各國人好比各系統(tǒng)平臺,七仔說的話好比Java源文件),然后地球人就想盡辦,終于發(fā)明了那么一款軟件可以跟七仔交流(這個軟件就好比Java虛擬機),它的原理是將七仔說的話先使用電磁波譜顯示出來(這個過程好比使用Java編譯器將Java源文件編譯成.class字節(jié)碼文件),然后地球人(不管美國、英國、中國、韓國等哪國人)只要使用這款軟件(這就好比各平臺實現(xiàn)了Java虛擬機)把電磁波譜解讀出來并智能地翻譯成對應國家的母語(這個過程好比Java虛擬機將計算機不能執(zhí)行的Java程序轉(zhuǎn)換成各平臺能識別的二進制),然后地球人就能與七仔交流了。哈哈,是不是很好理解?

Java程序執(zhí)行簡化過程
小結(jié)
以上內(nèi)容是對Java虛擬機進行了一個簡單的理解,以后將會深入地理解Java虛擬機運行機制。現(xiàn)在只需理解Java虛擬機在Java程序執(zhí)行過程中的作用即可。