gpt4 book ai didi

java - 这是通过请求 GC 执行其 Activity 来避免内存泄漏的最佳方法吗?

转载 作者:行者123 更新时间:2023-12-01 06:28:05 25 4
gpt4 key购买 nike

将finally block 中的实例设置为Orphan是否会要求GC高优先级执行垃圾回收?

SQLConnect ds =null;
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
...
variables

try {
//Business Logic
} catch(Exception e) {
//Logging goes here
} finally {
//Make instances Orphan
ds = null;
con = null;
pstmt = null;
rs = null;
}

最佳答案

没有。您正在做一些毫无意义的事情(当局部变量不再使用时将它们设置为 null),但您没有做您应该做的事情:关闭语句/连接。

您应该只在 finally block 中使用 call close ,或者使用 try-with-resources statement如果您使用 Java 7,这会让生活变得更简单:

try (Connection conn = ...)
{
try (PreparedStatement statement = ...)
{
try (ResultSet rs = ...)
{
...
}
}
}

为了垃圾收集而将变量设置为 null 几乎是不值得的 - 但在持有非内存资源(文件句柄、网络句柄、数据库句柄等)始终是一个好主意。您确实不想等到终结器为您清理之后才释放这些资源。

关于java - 这是通过请求 GC 执行其 Activity 来避免内存泄漏的最佳方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17358274/

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