天天看點

聊聊幾種jvm垃圾回收器推薦閱讀:

1.Serial收集器(新生代)

  (1)單線程收集器

  (2)采用複制算法,用于新生代垃圾回收

  (3)垃圾回收期間需要STW(Stop The World),STW表示垃圾回收線程不與使用者線程并發執行

2.Serial Old收集器(老年代)

  (1)與Serial相似

  (2)采用标記整理算法,用于老年代的立即回收

3.ParNew收集器(新生代)

  (1)是Serial的多線程版本

  (2)除此之外與Serial收集相似

4.Parallel Scavenge收集器(新生代)

  (1)基本功能與ParNew收集器相似

  (2)差別在于該收集器是要達到一個可控制的吞吐量(吞吐量=運作使用者代碼的時間/(運作使用者代碼的時間)+(垃圾回收的時間))

  (3)可以高效的利用cpu時間

  (4)提供了參數可以精确的控制吞吐量,分别是控制最大垃圾回收停頓時間,也可以直接設定吞吐量大小

5.Parallel Old收集器(老年代)

  (1)Parallel Scavenge收集器的老年代版本,采用标記整理算法

6.CMS收集器(老年代)

  (1)采用标記清除算法,使用者老年代的垃圾回收

  (2)主要關注的是盡可能的縮短垃圾回收時使用者線程的停頓時間

  (3)主要有一下幾個步驟:

    ①初始标記:簡單标記一下GC ROOTS能直接關聯到的節點,此階段需要STW

    ②并發标記:進行GC Roots Tracing的過程,此階段與使用者線程并發執行

    ③重新标記:對并發标記時用于線程産生的新的節點進行标記,此階段需要STW, 但是此階段為多線程并行的(多個垃圾回收線程同時進行)

    ④并發清除:使用标記清楚算法對對象進行回收,此階段與同戶線程同時進行

  (4)缺點:

    ①無法清除浮動垃圾,由于最後一個階段并發清除是與使用者線程同時進行的,是以使用者線程可能會産生新的可會收的對象

    ②可能會産生垃圾碎片,由于該回收器采用的是标記清除算法

7.G1收集器

  (1)G1(Garbage-First)

  (2)G1收集器作用于整個JVM堆

  (3)G1收集器将整個堆分成了大小相同的獨立區域(Region)

  (4)在背景會維護一個優先清單,每次根據允許的收集時間,優先回收價值最大的Region

深入解析HashMap和ConcurrentHashMap源碼以及底層原理

設計模式(二):幾種工廠模式詳解

程序同步的五種機制以及優缺點(翻譯)

redis五種資料類型的實作方式,常用指令,應用場景

redis和memcahed的共同點,差別以及應用場景

詳解TCP的三次握手與四次揮手及面試題(很全面)

Arrays 工具類詳解(超詳細)

算法必須掌握幾種方法

QPS、TPS、并發使用者數、吞吐量

設計模式之單例模式

Collections 工具類詳解(超詳細)

END

聊聊幾種jvm垃圾回收器推薦閱讀:

掃描二維碼 | 關注我們

微信公衆号 : jiagoudiantang

CSDN : https://fking.blog.csdn.net