您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)java中JVM運(yùn)行時內(nèi)存整理的示例分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
Java主要應(yīng)用于:1. web開發(fā);2. Android開發(fā);3. 客戶端開發(fā);4. 網(wǎng)頁開發(fā);5. 企業(yè)級應(yīng)用開發(fā);6. Java大數(shù)據(jù)開發(fā);7.游戲開發(fā)等。
在學(xué)習(xí)JVM有關(guān)內(nèi)容的時候,我們經(jīng)常會遇到堆、棧之類的知識點(diǎn),對于新手來說,JVM的內(nèi)容問題是不太理解的,這是因?yàn)楹芏嗳嗽诨A(chǔ)知識點(diǎn)方面,對于概念的理解不是很透徹。
1、方法區(qū)和堆是所有線程共享的,虛擬棧,本地方法棧和程序計(jì)數(shù)器是線程私有的。也就是說虛擬棧,本地方法和程序計(jì)數(shù)器是線程隔離的。程序計(jì)數(shù)器是唯一不會出現(xiàn)oom的部分。
2、程序計(jì)數(shù)器可以看成當(dāng)前線程執(zhí)行的字節(jié)碼的行號暗示器。
3、虛擬機(jī)棧和線程的生命周期是一樣的,當(dāng)線程執(zhí)行的時候會創(chuàng)建一個棧幀,用于存放當(dāng)前線程的方法出口,局部變量表,操作數(shù)棧,動態(tài)連接等信息。
4、本地方法棧用于調(diào)用native方法使用。
5、堆是所有線程共享的部分,用于存儲創(chuàng)建的對象。
6、方法區(qū)和堆一樣都是所有線程共享的,方法區(qū)主要用于存放虛擬機(jī)加載的類的信息,常量,靜態(tài)常量等信息。
除了運(yùn)行時數(shù)據(jù)區(qū)外還有一部分內(nèi)存是不受虛擬機(jī)管理的部分,這一部分就是直接內(nèi)存,直接內(nèi)存是直接在物理的memory分配,我們經(jīng)常使用的 ByteBuffer. allocateDirect 就是直接在物理內(nèi)存上分配的。但是在虛擬機(jī)里面會有這部分內(nèi)存的引用,以便對這一部分內(nèi)存進(jìn)行管理。
感謝各位的閱讀!關(guān)于“java中JVM運(yùn)行時內(nèi)存整理的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。