JVM是Java Virtual Machine(Java虛擬機(jī))的縮寫,JVM是一種用于計(jì)算設(shè)備的規(guī)范,它是一個(gè)虛構(gòu)出來的計(jì)算機(jī),是通過在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能來實(shí)現(xiàn)的。
Java語言的一個(gè)非常重要的特點(diǎn)就是與平臺(tái)的無關(guān)性。
java編譯器只需面向JVM,生成JVM能理解的代碼或字節(jié)碼文件。Java源文件經(jīng)編譯器,編譯成字節(jié)碼程序,通過JVM將每一條指令翻譯成不同平臺(tái)機(jī)器碼,通過特定平臺(tái)運(yùn)行。


JVM執(zhí)行程序的過程 :
I.加載.class文件
II.管理并分配內(nèi)存
III.執(zhí)行垃圾收集
JRE(java運(yùn)行時(shí)環(huán)境)包含JVM的java程序的運(yùn)行環(huán)境
JVM是Java程序運(yùn)行的容器,但是他同時(shí)也是操作系統(tǒng)的一個(gè)進(jìn)程,因此他也有他自己的運(yùn)行的生命周期,也有自己的代碼和數(shù)據(jù)空間。
JVM在整個(gè)jdk中處于最底層,負(fù)責(zé)與操作系統(tǒng)的交互,用來屏蔽操作系統(tǒng)環(huán)境,提供一個(gè)完整的Java運(yùn)行環(huán)境,因此也叫虛擬計(jì)算機(jī).操作系統(tǒng)裝入JVM是通過jdk中Java.exe來完成,通過下面4步來完成JVM環(huán)境。
1.創(chuàng)建JVM裝載環(huán)境和配置
2.裝載JVM.dll
3.初始化JVM.dll并掛接到JNIENV(JNI調(diào)用接口)實(shí)例
4.調(diào)用JNIEnv實(shí)例裝載并處理class類。