Java对象finalize()方法

Java提供了一种在对象即将被销毁时执行资源释放的方法。在Java中创建对象,但是不能销毁对象。JVM运行一个称为垃圾收集器的低优先级特殊任务来销毁不再引用的所有对象。

垃圾回收器给我们一个机会,在对象被销毁之前执行清理代码。Object类有一个finalize()方法就是用于在对象被销毁之前执行清理代码,声明如下:

protected void  finalize() throws   Throwable  {  }

Object类中的finalize()方法不会做任何事情。所以需要覆盖类中的finalize()方法。类的finalize()方法将在类的对象销毁之前由垃圾回收器调用。

示例

以下代码显示了如何创建一个Finalize类覆盖对象类的finalize()方法。

class Finalize {
  private int x;
  public Finalize(int x) {
    this.x = x;
  }
  public void finalize() {
    System.out.println("Finalizing " + this.x);
  }
}
public class Main {
  public static void main(String[] args) {
    for (int i = 0; i < 20; i++) {
        Finalize f= new Finalize(i);
        f.finalize();// 可显示的调用
    }
  }
}

上面的代码生成以下结果。

Finalizing 0
Finalizing 1
Finalizing 2
Finalizing 3
Finalizing 4
Finalizing 5
Finalizing 6
Finalizing 7
Finalizing 8
Finalizing 9
Finalizing 10
Finalizing 11
Finalizing 12
Finalizing 13
Finalizing 14
Finalizing 15
Finalizing 16
Finalizing 17
Finalizing 18
Finalizing 19

上一篇:Java对象克隆

下一篇:Java不可变对象

关注微信小程序
程序员编程王-随时随地学编程

扫描二维码
程序员编程王

扫一扫关注最新编程教程