JVM簡(jiǎn)單個(gè)人總結(jié)
一、JVM分區(qū)
1、方法區(qū)
是所有線程共享的內(nèi)存區(qū)域,它用于存儲(chǔ)已被Java虛擬機(jī)加載的類信息、常量、靜態(tài)變量、即時(shí)編譯器編譯后的代碼等數(shù)據(jù)。
2、堆
A、是jvm內(nèi)存中最大的一塊,在虛擬機(jī)啟動(dòng)時(shí)開辟,存放所有數(shù)組和對(duì)象實(shí)例
B、分為新生代和老年代
3、程序計(jì)數(shù)器
A、保存當(dāng)前線程正在執(zhí)行的字節(jié)碼指令的地址
B、一個(gè)線程有一個(gè)程序計(jì)數(shù)器,會(huì)記住線程的運(yùn)行,不然線程掛起后就不知道在 干嘛了,只有run方法
虛擬機(jī)棧
里面有很多棧幀,一個(gè)方法一個(gè)棧楨,每個(gè)棧幀存(局部變量表、操作數(shù)棧、 動(dòng)態(tài)鏈接、出口)
局部變量表:8個(gè)基本數(shù)據(jù)類型、對(duì)象引用地址、return類型
操作數(shù)棧:進(jìn)行運(yùn)算的
動(dòng)態(tài)鏈接:存放對(duì)其他方法的引用鏈接
出口:正常return,不正常拋異常
本地方法棧
方法上帶native關(guān)鍵字,c和c++的
Java內(nèi)存結(jié)構(gòu)
判斷對(duì)象是否存活
引用計(jì)數(shù)法:對(duì)象在創(chuàng)建時(shí),有計(jì)數(shù)器,有引用指向就+1,沒有引用指向了就 會(huì)認(rèn)為是垃圾,實(shí)現(xiàn)簡(jiǎn)單效率高,但是無法解決循環(huán)引用的問題
可達(dá)性分析算法,現(xiàn)在jvm使用的算法
當(dāng)一個(gè)對(duì)象到root下沒有引用鏈?zhǔn)菫槔鴮?duì)象
GC root:虛擬機(jī)棧、靜態(tài)引用的對(duì)象、常量引用的對(duì)象、本地方法引用的 對(duì)象
優(yōu)點(diǎn):解決循環(huán)引用的問題
2、垃圾回收機(jī)制,簡(jiǎn)稱GC
程序運(yùn)行中會(huì)有大量?jī)?nèi)存垃圾,虛擬機(jī)會(huì)不定時(shí)進(jìn)行GC
JVM堆分為新生代和老年代,新生代分為Eden、From Survivor、To Survivor區(qū), 這樣能更便于虛擬機(jī)管理內(nèi)存。
新生代與老年代的內(nèi)存比值為1:2,(–XX:NewRatio 來指定)
Eden:From:to = 8:1:1,( 可以通過參數(shù) –XX:SurvivorRatio 來設(shè)定 ),所 以新生代中有90% 可以使用的內(nèi)存。
對(duì)象會(huì)先在Eden區(qū),當(dāng)新生代內(nèi)存不夠時(shí),經(jīng)過一次minor GC,存活下來的 對(duì)象轉(zhuǎn)入survivor區(qū),每一次gc存活下來,年齡+1,默認(rèn)15后轉(zhuǎn)入老年代
持久代(永久代)就是方法區(qū),存放常量、靜態(tài)變量和類信息,難以回收
3、垃圾回收算法
A、引用計(jì)數(shù)法:當(dāng)引用為0時(shí),回收,優(yōu)缺點(diǎn)同上被認(rèn)為垃圾的對(duì)象
B、標(biāo)記-清除算法:標(biāo)記就是上面說認(rèn)為是否為垃圾,清除是進(jìn)行清除,老年代應(yīng) 用多。
C、標(biāo)記-整理算法:同上,但是清除后會(huì)將可用的內(nèi)存“整理”到一起,老年代使 用,解決內(nèi)存碎片化問題,但是移動(dòng)對(duì)象,需要更新引用。
D、復(fù)制算法:和C相似,區(qū)別在于用兩塊內(nèi)存空間,適合survivor區(qū)兩塊
E、JVM參數(shù)
全局可在idea包的bin目錄下的idea.exe.vmoptions里配置保存
調(diào)優(yōu)總結(jié),參考別人
Java JVM
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。