软弱与弱参考

时间:2012-08-30 15:52:51

标签: java garbage-collection finalizer

我对Java中的SoftReference WeakReference提出了一个问题。

我所知道的是:

GC使用算法来决定是否回收可轻松访问的对象,但始终回收弱可达对象。

这是否意味着GC永远不会在finalize()上运行WeakReferences方法?

由于

2 个答案:

答案 0 :(得分:2)

根据The Truth About Garbage Collection

  

如果一个类定义了一个终结器,那么该类的任何实例都必须   在释放之前调用终结器。这意味着   通过包含终结器来延迟释放。

基于此,我的理解是,无论周/软,如果定义完成,它将被调用。

答案 1 :(得分:0)

我不遵循你的推理,但终结者肯定会被称为。一旦对象变为finalize,就会清除对它的所有soft / weak引用。因此,在最终确定之前,参考可以被视为null