教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

JVM組成部分和作用詳細(xì)介紹【圖文詳解】

更新時(shí)間:2021年10月22日10時(shí)04分 來源:傳智教育 瀏覽次數(shù):

JVM虛擬機(jī)的組成

所謂java能實(shí)現(xiàn)跨平臺(tái),是因?yàn)樵诓煌脚_(tái)上運(yùn)行不同的虛擬機(jī)決定的,因此java文件的執(zhí)行不直接在操作系統(tǒng)上執(zhí)行,而是通過jvm虛擬機(jī)執(zhí)行,我們可以從這張圖看到,JVM并沒有直接與硬件打交道,而是與操作系統(tǒng)交互用以執(zhí)行java程序。

JVM與系統(tǒng)交互


下面張圖是jvm的組成圖,分為四部分:

JVM構(gòu)成圖

類加載器

類加載器的作用是加載類文件到內(nèi)存。比如我們寫一個(gè)HelloWorld.java的程序,首先使用javac命令進(jìn)行編譯,生成HelloWorld.java的字節(jié)碼文件,怎樣才能執(zhí)行.class文件呢。就需要用藥類加載器將字節(jié)碼文件加載到內(nèi)存中,然后通過jvm后續(xù)的模塊進(jìn)行加載執(zhí)行程序。ClassLoader只管加載,至于是否能夠執(zhí)行,則不屬于它的負(fù)責(zé)范圍,由執(zhí)行引擎負(fù)責(zé)。

執(zhí)行引擎

執(zhí)行引擎也叫解釋器,負(fù)責(zé)解釋命令,提交操作系統(tǒng)執(zhí)行

本地接口

本地接口的作用是融合不同的編程語言為Java所用,它的初衷是融合C/C++程序,Java誕生的時(shí)候是C/C++橫行的時(shí)候,要想立足,必須有一個(gè)聰明的、睿智的調(diào)用C/C++程序,于是就在內(nèi)存中專門開辟了一塊區(qū)域處理標(biāo)記為native的代碼,它的具體做法是Native Method Stack中登記native方法,在Execution Engine執(zhí)行時(shí)加載native libraies。目前該方法使用的是越來越少了,除非是與硬件有關(guān)的應(yīng)用,比如通過Java程序驅(qū)動(dòng)打印機(jī),或者Java系統(tǒng)管理生產(chǎn)設(shè)備,在企業(yè)級(jí)應(yīng)用中已經(jīng)比較少見,因?yàn)楝F(xiàn)在的異構(gòu)領(lǐng)域間的通信很發(fā)達(dá),比如可以使用Socket通信,也可以使用Web Service等等,不多做介紹。

運(yùn)行時(shí)數(shù)據(jù)區(qū)

運(yùn)行數(shù)據(jù)區(qū)是整個(gè)JVM的重點(diǎn)。我們所有寫的程序都被加載到這里,之后才開始運(yùn)行,Java生態(tài)系統(tǒng)如此的繁榮,得益于該區(qū)域的優(yōu)良自治。整個(gè)JVM框架由加載器加載文件,然后執(zhí)行器在內(nèi)存中處理數(shù)據(jù),需要與異構(gòu)系統(tǒng)交互是可以通過本地接口進(jìn)行!

添加QQ(注意~~添加好友界面,選擇找人):435946716【免費(fèi)】獲取《JVM核心教程:JVM從門到精通_JVM虛擬機(jī)底層原理深入教程》全套視頻教程+配套資料。



猜你喜歡

JVM將內(nèi)存空間劃分為幾種?

Java JDK是什么意思?有什么作用?

JDK1.8有哪些新特性?JDK1.8詳細(xì)介紹

傳智教育JavaEE高手班課程

0 分享到:
和我們?cè)诰€交談!