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

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


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

在這裏插入圖片描述

新生代分配比率 Eden:S0:S1 == 8:1:1微信

對象的產生怎麼分配區域

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

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

回收算法有哪些?

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

標記清除

在這裏插入圖片描述

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

標記整理

在這裏插入圖片描述

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

複製清除算法

在這裏插入圖片描述

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

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

  • 新生代->使用複製回收算法
  • 老年代->使用標記整理算法
相關文章
相關標籤/搜索