新聞中心
這篇文章主要介紹了java虛擬機的基本組成是什么,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
科爾沁右翼前網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)公司2013年開創(chuàng)至今到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
java虛擬機的基本組成:
類加載子系統(tǒng)、運行時數(shù)據(jù)區(qū)(JVM內(nèi)存模型)、執(zhí)行引擎、本地方法接口
類加載器:
主要負責(zé)把編譯好的.class字節(jié)碼文件裝入運行時數(shù)據(jù)區(qū),以供運行時數(shù)據(jù)區(qū)使用。
運行時數(shù)據(jù)區(qū)(JVM內(nèi)存模型):
1、堆:主要存放對象,多線程共享(垃圾回收的主要區(qū)域)。
2、方法區(qū):主要存放常量,靜態(tài)變量,類元信息(類名,方法,字段,版本等等)。
3、線程棧:存儲方法參數(shù)、局部變量、中間運算結(jié)果、對象的引用、并且提供部分其它模塊工作需要的數(shù)據(jù)等。
4、本地方法棧: 本地方法棧為虛擬機使用到的native方法服務(wù)。
5、程序計數(shù)器:當(dāng)前線程所執(zhí)行的字節(jié)碼的行號指示器,當(dāng)執(zhí)行本地方法時為null。
執(zhí)行引擎:
執(zhí)行引擎是JVM執(zhí)行Java字節(jié)碼的核心,執(zhí)行方式主要分為解釋執(zhí)行、編譯執(zhí)行、自適應(yīng)優(yōu)化執(zhí)行、硬件芯片執(zhí)行方式。
本地方法接口:
非java語言實現(xiàn)的方法接口。
jdk1.8 jvm內(nèi)存結(jié)構(gòu)圖:
JVM內(nèi)存模型 1.8之前 和 1.8區(qū)別:
主要差別:
1、元數(shù)據(jù)區(qū)取代了永久代。元空間的本質(zhì)和永久代類似,都是對JVM規(guī)范中方法區(qū)的實現(xiàn)(ps:方法區(qū)是java虛擬機中的規(guī)范,而永久代和元空間都是方法區(qū)的一種實現(xiàn))。
2、元數(shù)據(jù)區(qū)從虛擬機中移動到了本地內(nèi)存。
3、jdk1.8中常量池和靜態(tài)變量移動到了堆中存儲(邏輯上還是屬于方法區(qū))
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享java虛擬機的基本組成是什么內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細的解決方法等著你來學(xué)習(xí)!
網(wǎng)站標(biāo)題:java虛擬機的基本組成是什么
當(dāng)前鏈接:http://fisionsoft.com.cn/article/jgosid.html