×

java虛擬機:對象內(nèi)存分配與回收

  • 作者:新網(wǎng)
  • 來源:新網(wǎng)
  • 瀏覽:100
  • 2018-05-10 13:20:29

大多數(shù)情況下,對象優(yōu)先在新生代Eden區(qū)域中分配。當(dāng)Eden內(nèi)存區(qū)域沒有足夠的空間進行分配時,虛擬機將觸發(fā)一次 Minor GC(新生代GC)。Minor GC期間虛擬機將Eden區(qū)域的對象移動到其中一塊Survivor區(qū)域。

   大多數(shù)情況下,對象優(yōu)先在新生代Eden區(qū)域中分配。當(dāng)Eden內(nèi)存區(qū)域沒有足夠的空間進行分配時,虛擬機將觸發(fā)一次 Minor GC(新生代GC)。Minor GC期間虛擬機將Eden區(qū)域的對象移動到其中一塊Survivor區(qū)域。

20300001309066132092894513600.jpg

<div>  大對象直接進入老年代。所謂大對象是指需要大量連續(xù)空間的對象。虛擬機提供了一個XX:PretenureSizeThreshold參數(shù),令大于這個值的對象直接在老年代中分配。
  長期存活的對象講進入老年代。虛擬機采用分代收集的思想管理內(nèi)存,那內(nèi)存回收時就必須能識別那些對象該放到新生代,那些該到老年代中。為了做到這點,虛擬機為每個對象定義了一個對象年齡Age,每經(jīng)過一次新生代GC后任然存活,將對象的年齡Age增加1歲,當(dāng)年齡到一定程度(默認為15)時,將會被晉升到老年代中,對象晉升老年代的年齡限定值,可通過-XX:MaxTenuringThreshold來設(shè)置。
  新生代GC(Minor GC):指發(fā)生在新生代的垃圾收集動作,因為對象大多都具備朝生夕滅特性,所以Minor GC非常頻繁,回收速度也比較快。
  老年代GC(Major GC / Full GC):指發(fā)生在老年代中的GC,出現(xiàn)Major GC后,經(jīng)常會伴隨至少一次的 Minor GC。Major GC的速度一般會比Minor GC慢10倍以上。
  以上就是小編對于對象內(nèi)存與回收的全部了解。

免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請發(fā)送郵件至:operations@xinnet.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

免費咨詢獲取折扣

Loading