diff --git a/JVM/2. 垃圾回收.md b/JVM/2. 垃圾回收.md new file mode 100644 index 0000000..eab986d --- /dev/null +++ b/JVM/2. 垃圾回收.md @@ -0,0 +1,37 @@ +# 垃圾回收 + +**堆空间的结构** + +- 新生代 + - `Eden` + - `Survivor` + - S0 + - S1 +- 老年代 +- 永久代 -> 元空间直接内存(JDK 8+) + +**策略** + +- 在创建对象时默认在 `Eden` 创建 +- 大对象进入老年代 +- 长期存活的对象进入老年代 + +**GC** + +- 部分 GC +- Full GC + +**死亡对象判断方法** + +- 引用计数法 + - 无法解决互相引用问题 +- 可达性分析 + - 主要方法 + +**垃圾收集算法** + +- 标记-清除算法 +- 复制算法 +- 标记-整理算法 + +*实际上使用的是分代收集的方法,针对不同代的特点使用不同方法* \ No newline at end of file