JVM垃圾收集器
- GC基本原理
- 清除垃圾的算法
- 垃圾回收器
-
- 串行收集器
-
- Serial
- [Serial Old](#Serial Old)
- 并行收集器
-
- [Parallel Scavenge【吞吐量优先 用与并行,复制算法】](#Parallel Scavenge【吞吐量优先 用与并行,复制算法】)
- [Parallel Old](#Parallel Old)
- ParNew收集器
- CMS收集器【用户线程并行】
- G1(Garbage-First)收集器
- [ZGC(Z Garbage Collector)](#ZGC(Z Garbage Collector))
转自《极客时间》
GC基本原理
垃圾回收
如果不进行垃圾收集,内存数据很快就会被占满
理论计算:
计算题:256byte * 400w / 1024 /1024 = 976.5625 MB
400百万256byte请求 约等于对象 1GB
什么是垃圾?

如何找到这个垃圾?
引用计数法和根可达算法
1)引用计数法(Reference Counting)
通过引用计数方法,找到这个垃圾
2)根可达算法(GCRoots Tracing)

3)回收过程

4)对象引用
清除垃圾的算法
JVM提供3种方法,清除垃圾对象:
- Mark-Sweep 标记清除算法
- Copying 拷贝算法
- Mark-Compact 标记压缩算法
垃圾回收器

串行收集器
Serial

Serial Old

并行收集器
Parallel Scavenge【吞吐量优先 用与并行,复制算法】

Parallel Old
ParNew收集器
CMS收集器【用户线程并行】
G1(Garbage-First)收集器
ZGC(Z Garbage Collector)