Java堆,配置設定對象執行個體所在空間,是GC的主要對象。分為
新生代(Young Generation/New)
老年代(Tenured Generation/Old)
新生代又劃分成
Eden Space
From Survivor/Survivor 0
To Survivor/Survivor 1
新生代要如此劃分是因為新生代使用的GC算法是複制收集算法。這種算法效率較高,而GC主要是發生在對象經常消亡的新生代,是以新生代适合使用這種複制收集算法。由于有一個假設:在一次新生代的GC(Minor GC)後大部分的對象占用的記憶體都會被回收,是以留存的放置GC後仍然活的對象的空間就比較小了。這個留存的空間就是Survivor space:From Survivor或To Survivor。這兩個Survivor空間是一樣大小的。例如,新生代大小是10M(Xmn10M),那麼預設情況下(-XX:SurvivorRatio=8),Eden Space 是8M,From和To都是1M。