java - 是否需要java的finalize方法?

标签 java finalize

我读到的关于 java finalize 方法的所有内容都说要使用它。似乎它几乎永远不会被调用,即使被调用也可能会出现问题。

还有一些其他问题询问何时使用它,似乎普遍的共识是从不

我自己从未使用过它(主要是因为警告不要使用),我也没有看到它在任何地方使用过。

是否存在适合的情况?有没有别无选择的情况?

如果不是,为什么它在那里?是否有内部类使用它并要求该方法可用?或者它只是一些不应该存在的东西?

我对什么时候应该使用它不太感兴趣(已经用“从不”回答),但澄清了为什么它甚至在那里给出了“从不”的回答。如果它是如此无用和危险,为什么它没有被贬值和移除?

最佳答案

向后兼容。有人首先认为这是一个好主意,然后当全世界意识到这不是一个好主意时,为时已晚。

这些东西几乎从未被移除。 Java 充满了如今被认为是坏主意但仍未被删除的概念 - 我想到的更多示例是 clone()Thread.stop() .

关于java - 是否需要java的finalize方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35666745/

相关文章:

java - 共享OpenGL资源: delete with finalize() or implement reference counting?

java - 部署在tomcat上时什么时候调用finalize

java - Google Play 多人游戏 : No connection to other players

java - 在 Java 中打印对象

java - 如何创建 int 文件 :outbound gateway via Java configuration

java - finalize() 在 Java 中如何工作?

java - 为什么 java.lang.Object 中的 finalize() 方法是 "protected"?

java - 当调用 System.gc() 或 finalize() 方法时,内部(JVM)发生了什么?

java - 安卓OpenGL ES 2.0 : Text aren't showing up

Java子链表内存分配