JVM運行時的內存

Java堆從GC的角度可以分爲:新生代(Eden 區、From Survivor 區和 To Survivor 區)和老年代(java8 取消了永久代,採用了 Metaspace)。

一、新生代
是用來存放新生的對象,一般佔據堆的1/3空間。由於頻繁創建對象,所以新生代會頻繁觸發MinorGC進行垃圾回收。新生代又分爲Eden區、ServivorFrom、ServivorTo三個區。

Eden區:
Java新對象的出生地(如果新創建的對象佔用內存很大,則直接分配到老年代)。當Eden區內存不夠時就會觸發MinorGC,對新生代區進行一次垃圾回收。

ServivorFrom:
上一次GC的倖存者,作爲這一次GC的被掃描者。

ServivorTo:
保留了一次MinorGC過程中的倖存者。
二、老年代
主要存放應用程序中生命週期長的內存對象。如果有特別大的對象,新生代放不下,就會使用老年代的擔保,直接放到老年代裏面。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章