GC算法与回收器
1. 哪些内存区域需要GC回收?
线程私有
线程共享
2. 对象存活判断?
引用计数法
Object a = new Object(); // a的引用计数为1
a = null; // a的引用计数为0,等待GC回收可达性分析

3. GC回收算法
标记清除法

img
复制算法

标记整理法

分代收集算法
最后更新于
Object a = new Object(); // a的引用计数为1
a = null; // a的引用计数为0,等待GC回收



最后更新于
Object a = new Object(); // a的引用计数为1
Object b = new Object(); // b的引用计数为1
a.next = b; // a的引用计数为2
b.next = a; // b的引用计数为2
a = null; // a的引用计数为1,尽管已经显示地将a赋值为null,但是由于引用计数为1,GC无法回收a
b = null; // b的引用计数为1,同理,GC也不回收b