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成本增長
堆分區都用那些對應的回收算法
- 新生代->使用複製回收算法
- 老年代->使用標記整理算法