您的位置:首页 > 编程语言 > Java开发

【Java 基础】Java垃圾回收机制 finalize() 方法

2016-05-18 09:42 701 查看


finalize() 方法

  Java允许定义这样的方法,它在对象被垃圾收集器析构(回收)之前调用,这个方法叫做finalize( ),它用来清除回收对象(一些东西,不一定是对象)。

例如,你可以使用finalize()来确保一个对象打开的文件被关闭了。

在finalize()方法里,你可以指定在对象销毁时候(前)要执行的操作。

(就类似Android里面的onDestroy()方法)

finalize()一般格式是:



关键字protected是一个限定符,它确保finalize() 方法不会被该类以外的代码调用。

当然,Java的内存回收可以由JVM来自动完成。如果你手动使用,则可以使用上面的方法。

demo:
public class FinalizationDemo {
public static void main(String[] args) {
Cake c1 = new Cake(1);
Cake c2 = new Cake(2);
Cake c3 = new Cake(3);

c2 = c3 = null;
System.gc(); //调用Java垃圾收集器
}
}

class Cake extends Object {
private int id;
public Cake(int id) {
this.id = id;
System.out.println("Cake Object " + id + "is created");
}

protected void finalize() throws java.lang.Throwable {
super.finalize();
System.out.println("Cake Object " + id + "is disposed");  //这里就是在 对象 被回收前  会被执行的代码段
}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 垃圾回收机制