1、GC發生在堆(heap)中
2、GC的種類
①、次數上頻繁收集Young區 -- Minor GC
②、次數上較少收集Old去 -- Full GC
③、基本不動Perm區
3、GC的算法
①、引用計數法 (JVM淘汰了)
只要對象之間相互引用了就不進行垃圾回收
缺點: 每次對象賦值時均維護引用計數器,且引用計數器本身也有一定的消耗;較難維護循環引用
②、復制算法 年輕代中使用的是Minor GC,這種GC算法使用的是復制算法
優點:沒有標記和清除的過程,效率高 ; 沒有內存碎片
缺點:需要雙倍的空間
③、標記清除算法 老年代一般使用標記清除或者標記清除與標記壓縮相結合的算法
優點:不需要雙倍的空間
缺點:兩次掃描,耗時嚴重;會產生內存碎片
④、標記壓縮算法 老年代一般使用標記清除或者標記清除與標記壓縮相結合的算法
優點:沒有內存碎片
缺點:需要移動對象的成本
在整理壓縮階段,不在對標記的對象做回收,而是所有存活對象都向一端移動,然后直接清除邊界以外的內存
⑤、標記清除壓縮算法 多次標記清除之后進行標記壓縮
優點:減少了移動對象的成本