finalize方法
1.源码
protect void finalize() throws Throwable { }
/*
1.finalize()方法只有一个方法体,里面没有代码,而且这个方法是
protected修饰的
2.这个方法不需要程序员手动调用,jvm的垃圾回收器负责调用此方法
3.执行时机:当一个java对象即将被垃圾回收器回收的时候,垃圾回收器负责调用
finalize方法
4.finalize方法实际上是sun公司为程序员准备的一个时机,垃圾销毁时机
如果希望在对象销毁时机执行一段代码的话,这个代码要写到finalize方法当中
5.静态代码快的作用:
静态代码快在类加载时刻执行,并且只能执行一次
finalize是一个垃圾回收时机,不需要程序员来调用
6.java中的垃圾回收器不是轻易启动的,垃圾太少,或者时间没到,种种条件下有可能启动,
也有可能不启动。
*/
public class TestFinalize {
public static void main(String[] args) {
//Person person = new Person();
//person=null;//将对象值设置为null,则该对象变成垃圾
/*
多造点垃圾,创建一百万个对象
for(int i = 0;i<1000000;i++){
Person p = new Person();
p=null;
}
*/
//有一段代码可以建议垃圾回收器启动
Person person = new Person();
person=null;
System.gc();//建议垃圾回收器启动,但不一定启动。
}
}
class Person{
@Override
protected void finalize() throws Throwable {
super.finalize();
System.out.println("即将被销毁");
}
}