如何检测何时不再引用对象

Voi*_*ter 9 java reference weak-references

有没有办法创建一个处理程序,在最后一次释放某个对象的时候,它将被完全调用?

一个示例是由物理数据文件支持的对象,一旦对象变为未引用,该文件应该被关闭而不是重命名.如果没有在该对象上显式调用"close"方法,那将是很好的.

我从Weak/Phantom参考区域了解到的所有通知机制仅表明通知将在某个时间点发生,但是没有保证何时会发生这种情况......

Jas*_*hen 13

简而言之,没有.

Java规范明确否认您能够知道何时释放最后一个引用.JVM实现(和优化)依赖于此.没有钩子.