java虛擬機(jī)的基本組成:
(視頻教程分享:java課程)
類加載子系統(tǒng)、運(yùn)行時(shí)數(shù)據(jù)區(qū)(JVM內(nèi)存模型)、執(zhí)行引擎、本地方法接口
立即學(xué)習(xí)“Java免費(fèi)學(xué)習(xí)筆記(深入)”;
類加載器:
主要負(fù)責(zé)把編譯好的.class字節(jié)碼文件裝入運(yùn)行時(shí)數(shù)據(jù)區(qū),以供運(yùn)行時(shí)數(shù)據(jù)區(qū)使用。
運(yùn)行時(shí)數(shù)據(jù)區(qū)(JVM內(nèi)存模型):
1、堆:主要存放對(duì)象,多線程共享(垃圾回收的主要區(qū)域)。
2、方法區(qū):主要存放常量,靜態(tài)變量,類元信息(類名,方法,字段,版本等等)。
3、線程棧:存儲(chǔ)方法參數(shù)、局部變量、中間運(yùn)算結(jié)果、對(duì)象的引用、并且提供部分其它模塊工作需要的數(shù)據(jù)等。
4、本地方法棧: 本地方法棧為虛擬機(jī)使用到的native方法服務(wù)。
5、程序計(jì)數(shù)器:當(dāng)前線程所執(zhí)行的字節(jié)碼的行號(hào)指示器,當(dāng)執(zhí)行本地方法時(shí)為null。
執(zhí)行引擎:
執(zhí)行引擎是JVM執(zhí)行Java字節(jié)碼的核心,執(zhí)行方式主要分為解釋執(zhí)行、編譯執(zhí)行、自適應(yīng)優(yōu)化執(zhí)行、硬件芯片執(zhí)行方式。
本地方法接口:
非java語言實(shí)現(xiàn)的方法接口。
jdk1.8 jvm內(nèi)存結(jié)構(gòu)圖:
JVM內(nèi)存模型 1.8之前 和 1.8區(qū)別:
主要差別:
1、元數(shù)據(jù)區(qū)取代了永久代。元空間的本質(zhì)和永久代類似,都是對(duì)JVM規(guī)范中方法區(qū)的實(shí)現(xiàn)(ps:方法區(qū)是java虛擬機(jī)中的規(guī)范,而永久代和元空間都是方法區(qū)的一種實(shí)現(xiàn))。
2、元數(shù)據(jù)區(qū)從虛擬機(jī)中移動(dòng)到了本地內(nèi)存。
3、jdk1.8中常量池和靜態(tài)變量移動(dòng)到了堆中存儲(chǔ)(邏輯上還是屬于方法區(qū))
相關(guān)推薦:java入門
以上就是java虛擬機(jī)的基本組成介紹的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
java怎么學(xué)習(xí)?java怎么入門?java在哪學(xué)?java怎么學(xué)才快?不用擔(dān)心,這里為大家提供了java速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://m.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)