JVM垃圾回收機制,GC發生在JVM哪部分,有幾種GC,它們的算法是什么?


1、GC發生在堆(heap)中

2、GC的種類

  ①、次數上頻繁收集Young區   --  Minor GC

  ②、次數上較少收集Old去      --   Full GC

  ③、基本不動Perm區

3、GC的算法

  ①、引用計數法  (JVM淘汰了)

    只要對象之間相互引用了就不進行垃圾回收

    缺點: 每次對象賦值時均維護引用計數器,且引用計數器本身也有一定的消耗;較難維護循環引用

  ②、復制算法     年輕代中使用的是Minor GC,這種GC算法使用的是復制算法

    優點:沒有標記和清除的過程,效率高 ;  沒有內存碎片

    缺點:需要雙倍的空間

    

 

   ③、標記清除算法    老年代一般使用標記清除或者標記清除與標記壓縮相結合的算法

    優點:不需要雙倍的空間

    缺點:兩次掃描,耗時嚴重;會產生內存碎片

    

 

   ④、標記壓縮算法     老年代一般使用標記清除或者標記清除與標記壓縮相結合的算法

    優點:沒有內存碎片

    缺點:需要移動對象的成本

    在整理壓縮階段,不在對標記的對象做回收,而是所有存活對象都向一端移動,然后直接清除邊界以外的內存

    

 

   ⑤、標記清除壓縮算法     多次標記清除之后進行標記壓縮

    優點:減少了移動對象的成本

             

 

 

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM