java - 有效的 Java - 永远不要依赖终结器来更新关键的持久状态

标签 java finalizer

为什么不应该这样做?由于执行垃圾回收时会调用终结器,为什么我们不能在这里添加持久化相关代码呢?

最佳答案

正如书中所解释的

Not only does the JLS provide no guarantee that finalizers will get executed promptly, it provides no guarantee that they'll get executed at all. It is entirely possible, even likely, that a program terminates without executing finalizers on some objects that are no longer reachable.

关于java - 有效的 Java - 永远不要依赖终结器来更新关键的持久状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31114238/

相关文章:

java - 当使用自定义类对象作为 HashMap 的键时,从 Java HashMap 随机访问一个值?

c# - C# 中的垃圾收集;在特定线程中处理对象

java - 使用什么来确保连接池始终关闭?

java - OOP 和堆/栈

java - 由于某种原因,Switch 语句与情况 8 不同。编译器表现得很奇怪

fortran - 最终程序的问题(gfortran 的段错误)

.net - 是否允许终结器调用其他托管类的方法?

java - 在我的情况下使用 finalize() 吗?

java - InputSteam.read 是否可以溢出缓冲区

java - 这段 Android 代码没有错误,但只是拒绝工作。当我点击下一步时崩溃