finalize()方法
- 当对象被判定为垃圾对象的时候, 由JVM自动调动此方法,用以标记垃圾对象, 进入回收队列。
- 垃圾对象:没有有效引用指向对象时,为垃圾对象;
- 垃圾回收:由GC销毁对象,释放数据存储空间。
- 自动回收机制:JVM的内存耗尽,一次性回收所有垃圾对象。
- 手机回收机制:使用System.gc(); 通知JVM执行垃圾回收。
finalize默认方法
protected void finalize() throws Throwable {}
方法重写
public class demo1 {
public static void main(String[] args) {
new test("张三", 18);
new test("李四", 18);
new test("王五", 21);
new test("赵六", 19);
System.gc();
System.out.println("回收垃圾对象");
}
}
class test{
private String name;
private int age;
public test(String name, int age) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//回收垃圾对象
@Override
protected void finalize() throws Throwable {
System.out.println(this.name+"对象被回收了");
}
}
运行结果
回收垃圾对象
赵六对象被回收了
王五对象被回收了
李四对象被回收了
张三对象被回收了