finalize在java中的清理

本教程操作环境:windows7系统、java10版,DELL G3电脑。

1.概念

finalize()主要用于在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。

2.语法

protectedvoidfinalize()throwsThrowable{}

3.参数

4.返回值

没有返回值

5.实例

publicclassFinalizeTest{

staticclassPerson{
Stringname;

@Override
protectedvoidfinalize()throwsThrowable{
System.out.println("finalize"+name);
super.finalize();
}
}


publicstaticvoidmain(String[]args){
Personp=newPerson();
p.name="ltt";
p=null;//此后,p原先指向的Person对象会在某个时间被gc回收掉

System.gc();//建议JVM进行gc操作,但不一定会进行gc操作
System.runFinalization();//执行将要被销毁的对象的finalize方法
}
}

运行结果运行结果

finalizeltt

为了触发 gc行为,用了下面的代码:

System.gc();//建议JVM进行gc操作,但不一定会进行gc操作
System.runFinalization();//执行将要被销毁的对象的finalize方法

原文来自:https://www.py.cn

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容