有没有办法创建一个处理程序,在最后一次释放某个对象的时候,它将被完全调用?
一个示例是由物理数据文件支持的对象,一旦对象变为未引用,该文件应该被关闭而不是重命名.如果没有在该对象上显式调用"close"方法,那将是很好的.
我从Weak/Phantom参考区域了解到的所有通知机制仅表明通知将在某个时间点发生,但是没有保证何时会发生这种情况......
简而言之,没有.
Java规范明确否认您能够知道何时释放最后一个引用.JVM实现(和优化)依赖于此.没有钩子.