深入理解Java虚拟机(2)
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
1、GC過(guò)程
2、對(duì)象已死判斷算法
??
3、對(duì)象的引用:
?
4、垃圾收集算法
補(bǔ)充堆中區(qū)域劃分
5、垃圾收集器
Parallel Scavenge:吞吐量?jī)?yōu)先收集器,與ParNew區(qū)別在于多了自適應(yīng)調(diào)節(jié)策略
CMS:以獲取最短回收停頓時(shí)間為目標(biāo)的收集器,是基于標(biāo)記-清除算法實(shí)現(xiàn)的收集器。
?
補(bǔ)充兩個(gè)概念:
并行(Parallel):指多個(gè)垃圾收集線程工作、但此時(shí)用戶線程仍然處于等待狀態(tài)。
并發(fā)(ConCurrent):指用戶線程與垃圾收集線程同時(shí)執(zhí)行。
?
6、內(nèi)存分配過(guò)程
一般過(guò)程:
1、TLAB((Thread Local Allocation Buffer))
2、優(yōu)先堆新生代eden區(qū)
3、大對(duì)象進(jìn)入堆老年代
4、新生代GC(Minor GC)發(fā)生,存活對(duì)象則優(yōu)先新生代Survivor區(qū),若存活對(duì)象大于Survivor區(qū),則通過(guò)擔(dān)保機(jī)制進(jìn)入老年代。
?
1)默認(rèn)新生代Eden、Survivor比例是多少?
-8:1,整個(gè)新生代包括Eden區(qū)和2個(gè)Survivor區(qū),也就是如果新生代共10M,則Eden分配8M,2個(gè)Survivor各為1M。
-XX:SurvivorRatio=8設(shè)置比例值。
?
2)新生代GC和老年代GC的有啥不一樣?
-新生代GC發(fā)生頻繁,速度快。
-新生代GC采用復(fù)制算法,老年代GC采用標(biāo)記整理算法。
?
3)新生代Survivor區(qū)的對(duì)象如何進(jìn)入老年代?
-Survivor存活年齡(新生代GC一次,年齡+1)大于MaxTenuringThreshold值。
-相同年齡的對(duì)象之和大于Survivor大小的一半。
轉(zhuǎn)載于:https://my.oschina.net/u/2526015/blog/860849
總結(jié)
以上是生活随笔為你收集整理的深入理解Java虚拟机(2)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 主成分分析(PCA)和独立成分分析(IC
- 下一篇: ZOJ 3781 Paint the G