A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Oh_JAVA 中级黑马   /  2016-7-26 10:59  /  621 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

finalize()方法中可以把自己传递个别的对象,这样就不是垃圾了,避免了被回收。但是当下次这个对象又符合垃圾回收的时候,finalize()方法不会被调用第二次了,而是直接被清理掉了。

这句话不太理解,为什么finalize()方法不会调用第二次,对象生命周期在第五步收集阶段会调用finalize,在此时若是有引用重新持有该对象,那么他不是“复活”了吗?难道还是接下去执行到死亡,复活的话不是又会经历一次finalize?不清楚这流程,Why?

2 个回复

倒序浏览
cat73 黑马帝 2016-7-26 12:31:11
沙发
我个人的看法,永远不要用这个方法,最好就当成这货在 Java 里不存在就可以了。
回复 使用道具 举报
cat73 发表于 2016-7-26 12:31
我个人的看法,永远不要用这个方法,最好就当成这货在 Java 里不存在就可以了。 ...

好吧,但是就是想对这些了解下,因为我看有些面试笔试会考finalize和finally,这些区别什么的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马