Java Object.Finalize方法

Java面向对象设计 - Java Object.Finalize方法


Java提供了一种在对象即将被销毁时执行资源释放的方法。

在Java中,我们创建对象,但是我们不能销毁对象。

JVM运行一个称为垃圾收集器的低优先级特殊任务来销毁不再引用的所有对象。

垃圾回收器给我们一个机会,在对象被销毁之前执行清理代码。

Object类有一个finalize()方法,声明如下:

protected void  finalize() throws   Throwable  {  }

Object类中的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 < 20000; i++) {
      new Finalize(i);
    }
  }
}

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