看书的时候整理的笔记。大家有兴趣的可以去看看《深入理解Java 虚拟机》这本书,很经典。作者是周志明
- 1、引用计数法
- 引用和对象是有关联的,如果要操作对象必须用引用进行。
- 可以通过引用计数来判断一个对象是否可以回收。
- 2、可达性分析
- 为了解决引用计数法循环引用的问题(A引用B,B引用A -》循环引用 ,由于A、B彼此引用对方,导致引用计数都不为0,所以GC无法回收它们)Java 使用了可达性分析的方法。通过一系列的"GC roots"对象座位起点搜索,如果在"GC roots"和一个对象之间没有可达路径,则改对象不可达。(不可达对象,不同于可回收对象,至少不可达要被标记两次以上,两次标记后然后是可回收对象,则面临回收)