转载

final、finally、finalize

finalize 是基础类 java.lang.Object 的一个方法,它的作用是保证对象在被垃圾收集器收集前完成特定资源的回收。finalize机制现在已经不推荐使用,并且在JDK9开始被标记为deprecated。

如果调用了finalize方法,则会导致该对象称为“特殊公民”,JVM需要对它进行额外的处理。这样反而导致了finalize成为了快速回收的阻碍者,它可能导致你的对象经过多个垃圾收集周期才能被回收。

在实践中因为finalize拖慢垃圾收集,导致大量对象堆积,也是一种典型的导致OOM的原因。

因为我们要确保回收资源就是因为资源都是有限的,垃圾收集的时间不可预测,可能会极大加剧资源占用。所以对于消耗非常高频的资源,千万不要指望finalize去承担资源释放的职责。

资源用完立刻显示释放,或者利用资源池尽量重用

原创文章,严禁随意转载。欢迎大家添加个人微信讨论交流,添加时请备注:博客。

final、finally、finalize
原文  http://ittiger.cn/Java-final-finally-finalize.html
正文到此结束
Loading...