一. 垃圾回收機制
1. 新生代(Young Generation):
1) 大多數新建的對象都位於Eden區
2) 當Eden區被對象填滿時,就會執行minor GC,並把所有存活下來對象轉移到其中一個survivor區
3) survivor space:s0, s1 兩個區域,存放每次垃圾回收后存活的對象
4) minor GC同樣會檢查survivor 區,這樣一段時間內,總會有一個空的servivor區
2.老生代(Old Generation)
1) 存放長期存活的對象和經過多次minor GC后依然存活下來的對象
3. 永生代(Permanent Generation)
1) 存放方法區,存放應用程序類和方法,靜態變量,final類型的常量、屬性和方法信息
二. GC的觸發條件
GC分為minor GC 和 major GC
minor GC從年輕代空間(包括 Eden 和 Survivor 區域)回收內存被稱為 Minor GC
major GC 是清理老年代永生代
1 minor GC觸發條件
1)當Eden區滿時,觸發minor GC
2 major GC 觸發條件:
1)老生代空間不足
2)永生代空間不足
3)通過minor GC后進入老生代的平均大小大於老生代可用內存
4) 由Eden區,from Space區向 to Space區復制時,對象大小大於to Space可用內存,則把該對象傳入老生代,且老生代的可用內存小於該對象大小