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

掃描二維碼 | 關注我們
微信公衆号 : jiagoudiantang
CSDN : https://fking.blog.csdn.net