Survivor区详解
生活随笔
收集整理的這篇文章主要介紹了
Survivor区详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Survivor區分為兩塊S0和S1,也可以叫做From和To 。
在同一個時間點上,S0和S1只能有一個區有數據,另外一個是空的。
接著上面的GC來說,比如一開始只有Eden區和From中有對象,To 中是空的。
此時進行一次GC操作,From區中對象的年齡就會+1,我們知道Eden區中所有存活的對象會被復制到To 區,From區中還能存活的對象會有兩個去處。
若對象年齡達到之前設置好的年齡閾值,此時對象會被移動到Old區,如果Eden區和From區沒有達到閾值的對象會被復制到To 區。此時Eden區和From區已經被清空(被GC的對象肯定沒了,沒有被GC的對象都有了各自的去處)。
這時候From和To 交換角色,之前的From變成了To ,之前的To 變成了From。
也就是說無論如何都要保證名為To 的Survivor區域是空的。
Minor GC會一直重復這樣的過程,知道To 區被填滿,然后會將所有對象復制到老年代中。
?
總結
以上是生活随笔為你收集整理的Survivor区详解的全部內容,希望文章能夠幫你解決所遇到的問題。