1. 程式人生 > 其它 >5.4圖解物件分配過程

5.4圖解物件分配過程

目錄

5.4圖解物件分配過程

物件分配過程概述:

1.new的物件放在伊甸園區,此區大小有限制。

2.當伊甸園區的空間填滿時,程式有需要建立物件,JVM的垃圾回收器將對伊甸園區進行垃圾回收(Minor GC),將伊甸園區中的不再被其他物件所引用的物件進行銷燬。再載入新的物件放在伊甸園區。

3.然後將伊甸園區中的剩餘物件移動到倖存者0區。

4.如果再次觸發垃圾回收,此時上次倖存下來放在倖存者0區的物件,如果沒有被回收,就會放到倖存者1區。

5.如果再次經歷垃圾回收,此時會重新放回倖存者0區,接著再去倖存者1區。

6.啥時候去養老區?可以設定次數(物件年齡)。預設是15次。

可以設定引數:-XX:MaxTenuringThreshold=進行設定

7.當養老區記憶體不足時,再次觸發GC:Major GC,進行養老區的記憶體清理。

8.若養老區執行了Major GC之後發現依然無法進行物件的儲存,就會產生OOM異常。

java.lang.OutOfMemoryError:Java heap space

總結:

針對倖存者s0,s1區的總結:複製之後有交換,誰空誰是to。

關於垃圾回收:頻繁在新生區收集,很少在養老區收集,幾乎不在永久區/元空間收集。