java虛擬機:對象內存分配與回收
						
							- 作者:新網
 
							- 來源:新網
 
							- 瀏覽:100
 
							- 2018-05-10 13:20:29
 
						
						大多數情況下,對象優先在新生代Eden區域中分配。當Eden內存區域沒有足夠的空間進行分配時,虛擬機將觸發一次 Minor GC(新生代GC)。Minor GC期間虛擬機將Eden區域的對象移動到其中一塊Survivor區域。
						
						   大多數情況下,對象優先在新生代Eden區域中分配。當Eden內存區域沒有足夠的空間進行分配時,虛擬機將觸發一次 Minor GC(新生代GC)。Minor GC期間虛擬機將Eden區域的對象移動到其中一塊Survivor區域。

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