怎么在java中清理finalize?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序。
1.概念
finalize()主要用于在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。
2.语法
protected void finalize() throws Throwable { }
3.参数
无
4.返回值
没有返回值
5.实例
public class FinalizeTest {
static class Person {
String name;
@Override
protected void finalize() throws Throwable {
System.out.println("finalize " + name);
super.finalize();
}
}
public static void main(String[] args) {
Person p = new Person();
p.name = "ltt";
p = null; // 此后,p原先指向的Person对象会在某个时间被 gc 回收掉
System.gc(); // 建议 JVM 进行 gc 操作,但不一定会进行 gc 操作
System.runFinalization(); // 执行将要被销毁的对象的 finalize 方法
}
}
运行结果
finalize ltt
为了触发 gc行为,用了下面的代码:
System.gc(); // 建议 JVM 进行 gc 操作,但不一定会进行 gc 操作
System.runFinalization(); // 执行将要被销毁的对象的 finalize 方法
看完上述内容,你们掌握怎么在java中清理finalize的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://www.py.cn/java/jichu/22651.html