JVM--JVM回收機制圖解整理

echo編輯整理,歡迎轉載,轉載請聲明文章來源。歡迎添加echo微信(微信號:t2421499075)交流學習。


堆分爲:新生代、老年代、S0、S1

在這裏插入圖片描述

對象的產生怎麼分配區域

  • 新生的對象直接分配到->新生代(Eden)
  • S0是我們的Eden區出現無法存儲某些對象的時候或者存儲滿了只有,整理Eden區就會存放到S0
  • S1和S0的作用是一樣的,但是他是針對S0的
  • 當我們對象經歷過15次GC之後,他就會被移入老年區(Old)

15次GC就被認爲認定爲老年區對象了。

回收算法有哪些?

  • 標記回收
  • 標記整理
  • 複製清除

標記清除

在這裏插入圖片描述

  • 優勢:清除算法的優點,算法簡單,實現容易了。
  • 缺點:使用過程中會逐漸產生被細化的分塊,不久後就會導致無數的 小分塊散佈在堆的各處,導致後續對象的分配空間不規整。

標記整理

在這裏插入圖片描述

  • 優勢:能夠有效的解決內存碎片問題
  • 缺點:整理階段,由於移動了可用對象,需要去更新引用。實現相對困難,而且對於內存消耗也會更高

複製清除算法

在這裏插入圖片描述

  • 優勢:吞吐量大、不會產生碎片問題
  • 缺點:內存空間的浪費,GC成本增加

堆分區都用那些對應的回收算法

  • 新生代->使用複製回收算法
  • 老年代->使用標記整理算法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章