diff --git a/docs/java/jvm/JVM垃圾回收.md b/docs/java/jvm/JVM垃圾回收.md index 028b3750..655266a7 100644 --- a/docs/java/jvm/JVM垃圾回收.md +++ b/docs/java/jvm/JVM垃圾回收.md @@ -309,7 +309,7 @@ JDK1.2 以后,Java 对引用的概念进行了扩充,将引用分为强引 ### 3.1 标记-清除算法 -该算法分为“标记”和“清除”阶段:首先比较出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象。它是最基础的收集算法,后续的算法都是对其不足进行改进得到。这种垃圾收集算法会带来两个明显的问题: +该算法分为“标记”和“清除”阶段:首先标记出所有不需要回收的对象,在标记完成后统一回收掉所有没有被标记的对象。它是最基础的收集算法,后续的算法都是对其不足进行改进得到。这种垃圾收集算法会带来两个明显的问题: 1. **效率问题** 2. **空间问题(标记清除后会产生大量不连续的碎片)** @@ -323,6 +323,7 @@ JDK1.2 以后,Java 对引用的概念进行了扩充,将引用分为强引 公众号 ### 3.3 标记-整理算法 + 根据老年代的特点提出的一种标记算法,标记过程仍然与“标记-清除”算法一样,但后续步骤不是直接对可回收对象回收,而是让所有存活的对象向一端移动,然后直接清理掉端边界以外的内存。 ![标记-整理算法 ](./pictures/jvm垃圾回收/94057049.png)