【发布时间】:2014-01-31 14:57:27
【问题描述】:
来自 MSDN: “当一个对象不可达时,垃圾收集器认为该对象是垃圾。然后,当垃圾收集器将一个对象的条目从终结队列移动到可访问队列时,该对象不再被认为是垃圾,它的内存也不会被回收。在至此,垃圾收集器已经完成了垃圾的识别,部分被识别为垃圾的对象已经被重新分类为非垃圾,垃圾收集器压缩可回收的内存,特殊的运行时线程清空freachable队列,执行每个对象的Finalize方法。 需要两次 GC 来回收需要终结的对象使用的内存。
我的问题 - 由于需要两次 GC 来为需要终结的对象回收内存,如果在第二次收集发生之前,需要终结的对象再次被强引用,垃圾收集器是否从 f-reachable 队列中删除该对象,使其不被垃圾收集?
【问题讨论】: