未验证 提交 a39a4044 编写于 作者: S SnailClimb 提交者: GitHub

fix :标记清除算法是首先标记出所有不需要回收的对象,在标记完成后统一回收掉所有没有标记的对象

上级 59a14bf0
......@@ -309,7 +309,7 @@ JDK1.2 以后,Java 对引用的概念进行了扩充,将引用分为强引
### 3.1 标记-清除算法
该算法分为“标记”和“清除”阶段:首先比较出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象。它是最基础的收集算法,后续的算法都是对其不足进行改进得到。这种垃圾收集算法会带来两个明显的问题:
该算法分为“标记”和“清除”阶段:首先标记出所有不需要回收的对象,在标记完成后统一回收掉所有没有被标记的对象。它是最基础的收集算法,后续的算法都是对其不足进行改进得到。这种垃圾收集算法会带来两个明显的问题:
1. **效率问题**
2. **空间问题(标记清除后会产生大量不连续的碎片)**
......@@ -323,6 +323,7 @@ JDK1.2 以后,Java 对引用的概念进行了扩充,将引用分为强引
<img src="./pictures/jvm垃圾回收/90984624.png" alt="公众号" width="500px">
### 3.3 标记-整理算法
根据老年代的特点提出的一种标记算法,标记过程仍然与“标记-清除”算法一样,但后续步骤不是直接对可回收对象回收,而是让所有存活的对象向一端移动,然后直接清理掉端边界以外的内存。
![标记-整理算法 ](./pictures/jvm垃圾回收/94057049.png)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册