我需要知道在JVM
中何时调用finalize()
方法.我创建了一个测试类,当finalize()
方法被调用时,它会通过重写写入一个文件.它没有被执行.有谁能告诉我它不执行的原因吗?
我需要知道在JVM
中何时调用finalize()
方法.我创建了一个测试类,当finalize()
方法被调用时,它会通过重写写入一个文件.它没有被执行.有谁能告诉我它不执行的原因吗?
一般来说,最好不要依靠finalize()
来做任何清理等工作.
根据Javadoc(值得一读),它是:
当垃圾回收确定不再有对对象的引用时,由对象上的垃圾回收器调用.
正如约阿希姆所指出的,如果对象总是可访问的,那么在程序的生命周期中可能永远不会发生这种情况.
此外,垃圾收集器不保证在任何特定时间运行.总的来说,我想说的是,一般来说,finalize()
可能不是最好的方法,除非你有什么特别的需要.