自我理解
minorJC在eden之后,會(huì)進(jìn)行S0的判斷,看看有沒(méi)有對(duì)象移除,和有沒(méi)有對(duì)象進(jìn)入老年代
發(fā)生之前的判斷?
--判斷老年代最大可用的連續(xù)空間是否大于新生代所有對(duì)象總空間
--如果不成立,HandlePromotionFailure是否允許擔(dān)保失敗。
--如果允許,那么會(huì)繼續(xù)檢查老年代最大可用的連續(xù)空間是否大于歷次晉升到老年代對(duì)象的平均大小,如果大于,將嘗試著進(jìn)行一次Minor GC,盡管這次Minor GC是有風(fēng)險(xiǎn)的;
--如果小于,或者HandlePromotionFailure設(shè)置不允許冒險(xiǎn),那這時(shí)也要改為進(jìn)行一次Full GC
發(fā)生在哪里?
--Eden
滿(mǎn)了,發(fā)生minorjc,將對(duì)象移動(dòng)到S0
--S0
當(dāng)其中有對(duì)象年齡超過(guò)15,發(fā)生minorJC,移動(dòng)到老年代
某一個(gè)年齡的總和大小,等于S0的一半,將大于等于該年齡的對(duì)象都移動(dòng)到老年代