Skip to content

Commit a990d6c

Browse files
committed
更新垃圾回收
1 parent 4bc2cd1 commit a990d6c

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

MD/GarbageCollection.md

+11-1
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,22 @@
66
- 什么时候回收?
77
- 怎么回收?
88

9-
## 垃圾回收算法
9+
## 对象是否存活
1010

1111
### 引用计数法
1212

1313
这是一种非常简单易理解的回收算法。每当有一个地方引用一个对象的时候则在引用计数器上 +1,当失效的时候就 -1,无论什么时候计数器为 0 的时候则认为该对象死亡可以回收了。
1414

1515
这种算法虽然简单高效,但是却无法解决**循环引用**的问题,因此 Java 虚拟机并没有采用这种算法。
1616

17+
### 可达性分析算法
18+
19+
可达性算法是通过一个称为 `GC Roots` 的对象像下搜索,整个搜索路径就称为引用链,当一个对象到 `GC Roots` 没有任何引用链 `JVM` 就认为该对象是可以被回收的。
20+
21+
![](https://ws3.sinaimg.cn/large/006tNc79gy1fmwqi5mv1jj30e407kmxm.jpg)
22+
23+
如图:Object1,2,3,4 都是存活的对象,而 Object5、6、7都是可回收对象。
24+
25+
## 垃圾回收算法
26+
1727
### 分代回收

0 commit comments

Comments
 (0)