一、finalize()是什么?
垃圾回收机器(Garbage Collection),也叫GG,垃圾回收器主要有以下特点:
1. 当对象不再被程序所使用的时候,垃圾回收器将会将其回收
2. 垃圾回收是在后台运行的,我们无法命令垃圾回收器马上回收资源,但是我们可以告诉他可以 尽快回收资源(System.gc()和Runtime.getRuntime().gc())
3. 垃圾回收器在回收某个对象的时候,首先会调用该对象的finalize()方法
4. GC主要针对堆内存
二、使用步骤
1. finalize() 是Object里面的一个方法,当一个堆空间中的对象没有被栈空间变量指向的时候,这 个对象会等待被java回收: jdk 里面是这样实现的:protected void finalize() throws Throwable { }
案例:
public static void main(String[] args){
Person p = new Person();
for(int i = 0 ; i< 1000; i++){
p = null;
}
System.gc();//增加垃圾回收器启动的概率
}
}
class Person{
protected void finalize() throws Throwable{
System.out.println("垃圾准备回收中!!!");
}