MENU

finalize

December 7, 2021 • 编程,JAVA阅读设置

finalize

java 提供 finalize()方法,垃圾回收器准备释放内存的时候,会先调用 finalize()。其实我们无法保证 fnalize 什么时候执行,执行的是否符合预期。使用不当会影响性能,导致程序死锁、挂起等。垃圾回收和 finalize() 都是靠不住的,只要 JVM 还没有快到耗尽内存的地步,它是不会浪费时间进行垃圾回收的。

对于 fnalize,我们要明确它是不推荐使用的,业界实践一再证明它不是个好的办法,在 Java 9 中,甚至明确将 Object.fnalize()标记为过时 @Deprecated(since="9")!如果没有特别的原因,不要实现 fnalize 方法,也不要指望利用它来进行资源回收。

Last Modified: February 5, 2023