gpt4 book ai didi

java - 我们什么时候应该在 java 中使用 finalize() 方法?

转载 作者:搜寻专家 更新时间:2023-11-01 01:37:25 24 4
gpt4 key购买 nike

我们什么时候真正应该在 java 中使用 finalize() 方法?

如果我们想在 finalize() 方法中关闭连接,那么最好使用下面的代码,因为等待 GC 调用 finalize() 方法然后释放连接没有意义

try{
// Connection creation
}finally{
//close connection
}

所以问题是 finalize() 方法在今天有任何意义吗?

最佳答案

通过显式调用方法来释放资源确实更可取。 Finalizers 不一定会立即调用,甚至根本不会调用。他们增加了性能损失。

但是,终结器仍可用作释放资源的安全网,以防客户端忘记显式处置。

来自 Joshua Bloch 的“Effective Java”第 2 版中的主题“避免终结器”:

[D]on't use finalizers except as a safety net or to terminate noncritical native resources. In those rare instances where you do use a finalizer, remember to invoke super.finalize. If you use a finalizer as a safety net, remember to log the invalid usage from the finalizer.

关于java - 我们什么时候应该在 java 中使用 finalize() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8682061/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com