finalize() 方法会被调用多少次?在 Java 中,谁调用 finalize() 方法?
finalize() 方法属于 Object 类。在关闭对象之前,垃圾收集器会确保不再有对该对象的引用,然后调用其上的 finalize() 方法。
因此,一旦你重写了其中的 finalize() 方法,你就可以执行所有清理活动,例如关闭数据库连接、网络连接等。
protected void finalize throws Throwable{}
它在程序执行期间只会被调用一次。
以下是关于 finalize 方法的一些显著要点。
由于此方法属于 Object 类(它是 Java 中所有类的超类),因此你可以从任何类中重写它。
这是一个空方法,但是你可以通过编写代码来执行所需的清理活动来重写它。
建议在 finalize() 方法中编写的清理代码(关闭连接等)周围使用 try-catch 块。
允许显式调用 finalize() 方法。它就像任何其他方法一样被执行。
当你显式调用 finalize() 方法时,如果垃圾收集器当前正在执行它,则会引发未检查的异常。
同样地,当你显式调用 finalize() 方法,并且在执行过程中垃圾收集器尝试调用它时,也会引发未检查的异常。
示例
public class FinalizeExample{ public void finalize(){ System.out.println("finalize method is executed..."); } public static void main(String args[]){ FinalizeExample obj = new FinalizeExample(); obj.finalize(); System.gc(); } }
输出
finalize method is executed...
广告