Files
Hui-s-notebook/判定是否回收.md
2023-09-10 10:50:53 +08:00

745 B
Raw Permalink Blame History

两次标记过程

  1. 可达性分析发现没有GC Roots相连接的引用链第一次标记
  2. 筛选该对象是否有必要执行finalize()方法没有覆盖finalize()方法或该方法已经被虚拟机调用过,就是为没有必要执行 判定为有必要执行finalize()方法之后会将该对象放在F-Queue队列中稍后有一条虚拟机自动建立的低调度优先级的Finalizer线程执行finalize()方法,但是并不承诺会等待运行结束,避免该方法执行缓慢而阻塞队列 finalize()方法是对象逃脱死亡命运的最后一次机会稍后收集器对F-Queue中对对象进行第二次标记对象想要拯救自己就需要与引用链上的任何一个对象重新建立关联