5.4圖解物件分配過程
阿新 • • 發佈:2021-10-19
目錄
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。
關於垃圾回收:頻繁在新生區收集,很少在養老區收集,幾乎不在永久區/元空間收集。