什么时候在Java中调用finalize()方法?

问题:

我需要知道在JVM中调用finalize()方法的时间。当通过覆盖finalize()方法调用时,我创建了一个写入文件的测试类。它不执行有人可以告诉我为什么它不执行?

回答:

一般来说,最好不要依靠finalize()进行清理等。
根据Javadoc(值得阅读),它是:

当垃圾收集确定不再有对该对象的引用时,垃圾收集器在对象上调用该对象。

正如Joachim指出的,如果对象始终可以访问,这可能永远不会在程序的生命中发生。
此外,垃圾收集器不能保证在任何特定时间运行。一般来说,我想说的是finalize()可能不是一般使用的最佳方法,除非有特定的需要它。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: When is the finalize() method called in Java?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

4 + 4 =