finalize 方法会被调用多少次?谁在 Java 中调用 finalize() 方法?
java 8object oriented programmingprogramming更新于 2025/4/29 0:52:17
finalize() 方法属于 Object 类。在关闭对象之前,垃圾收集器会确保不再有对它的引用,并调用它的 finalize() 方法。
因此,一旦您重写其中的 finalize() 方法,您就可以执行所有清理活动,例如关闭数据库连接、网络连接等资源。
protected void finalize throws Throwable{}
它在程序执行期间仅被调用一次。
以下是有关 finalize 方法的一些值得注意的要点。
由于此方法属于 Object 类,它是 Java 中所有类的超类,因此您可以从任何类中重写它。
这是一个空方法,但您可以通过编写代码来执行所需的清理活动来重写它。
建议使用 try catch围绕在 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...