我知道Java中的终结器存在严重的性能问题 - 有关详细信息,请参阅此主题:Why do finalizers have a "severe performance penalty"?
现在我有一个场景,我想禁止某个类的子类使用终结器。 AfaIk,这可以通过添加最终的空终结器来完成:
protected final void finalize() throws Throwable {}
这样一个空的终结器是否已经触发已知的性能问题?或者GC会将其检测为空终结器并将对象视为普通的非终结对象吗?
这是一个使用自己的受控终结过程的框架。实现上述类的子类的用户可以通过添加自己的Java终结器来破坏此过程。此外,如果需要最终确定,它将迫使他们使用预期的最终确定过程。