我读到的关于 java finalize 方法的所有内容都说不要使用它。似乎它几乎永远不会被调用,即使被调用也可能会出现问题。
还有一些其他问题询问何时使用它,似乎普遍的共识是从不。
我自己从未使用过它(主要是因为警告不要使用),我也没有看到它在任何地方使用过。
是否存在适合的情况?有没有别无选择的情况?
如果不是,为什么它在那里?是否有内部类使用它并要求该方法可用?或者它只是一些不应该存在的东西?
我对什么时候应该使用它不太感兴趣(已经用“从不”回答),但澄清了为什么它甚至在那里给出了“从不”的回答。如果它是如此无用和危险,为什么它没有被贬值和移除?
最佳答案
向后兼容。有人首先认为这是一个好主意,然后当全世界意识到这不是一个好主意时,为时已晚。
这些东西几乎从未被移除。 Java 充满了如今被认为是坏主意但仍未被删除的概念 - 我想到的更多示例是 clone()
或 Thread.stop()
.
关于java - 是否需要java的finalize方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35666745/