垃圾收集算法
引用计数法
- 优点
- 不用等待内存不够用的时候才进行垃圾的回收。可以边赋值边检查计数器的值是否为0:没有延时性
- 缺点
- 循环依赖,可能引起内存泄漏。
- 需要单独的字段存储计数器,增加了存储的开销。
- 每次赋值时,都需要时间上的开销。
根搜索算法
-
使用根搜索算法后,内存中的存活对象都会被根对象集合直接或间接连接着。
-
可能的根对象
Java
栈内对象引用- 本地方法栈内对象引用
- 运行时常量池对象引用
- 方法区类静态属性的对象引用
- 一个类队形的唯一数据类型的
Class
对象
死缓阶段
- 真正被回收,需要经历俩次标记过程。
- 当一个对象第一次被标记时,而且执行finalize()方法,则将其放入
F-Queue
队列,随后由虚拟机的低优先级线程去回收,在回收期间,如果该对象重新与上述的根对象建立关联即可逃脱死刑,否则GG
。
评论区