在Java垃圾回收中使用finalize()方法

当垃圾收集器确定不再对特定对象进行引用时,该finalize()方法将由该对象上的垃圾收集器调用。该finalize()方法不需要参数,也不返回值。

finalize()给出了演示Java方法的程序,如下所示:

示例

import java.util.*;
public class Demo extends GregorianCalendar {
   public static void main(String[] args) {
      try {
         Demo obj = new Demo();
         System.out.println("The current time is: " + obj.getTime());
         obj.finalize();
         System.out.println("The finalize() method is called");
      } catch (Throwable e) {
         e.printStackTrace();
      }
   }
}

输出结果

The current time is: Tue Jan 15 13:21:55 UTC 2019
The finalize() method is called

现在让我们了解上面的程序。

main()类Demo中的方法中,创建了Demo对象obj。然后使用该getTime()方法打印当前时间。该finalize()方法被调用。演示此代码段如下:

try {
   Demo obj = new Demo();
   System.out.println("The current time is: " + obj.getTime());
   obj.finalize();
   System.out.println("The finalize() method is called");
}
catch (Throwable e) {
   e.printStackTrace();
}