的最终化()方法属于对象类。在关闭对象之前,垃圾收集器确保不再有对该对象的引用,并对其进行调用finalize()
。
因此,一旦在其中覆盖了finalize()方法,就可以执行所有清理活动,例如关闭数据库连接,网络连接等资源。
protected void finalize throws Throwable{}
在程序执行期间仅调用一次。
以下是有关finalize方法的一些值得注意的要点。
由于此方法属于Object类,它是java中所有类的超类,因此您可以从任何类中重写它。
这是一个空方法,但是您可以通过编写代码来执行要求清除活动来覆盖它。
建议尝试尝试捕获该finalize()
方法中编写的清除代码(关闭连接等)。
允许显式调用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...