gpt4 book ai didi

java - 在Java中使用WeakReference时必须在使用后设置对null的强引用?

转载 作者:行者123 更新时间:2023-11-29 09:19:28 24 4
gpt4 key购买 nike

我正在阅读 this由于我的代码中存在一些与弱引用相关的内存问题,当我遇到这个小注释时:

You have to explicitly set that strong reference to null after use:

This one isn't so obvious: you might think that a strong reference ceases to exist once it goes out of scope. However, the JVM isn't required to do so, and for efficiency's sake, won't. The strong reference remains in the stack frame, and can get in the way of garbage collection.

这还是真的吗?如果我做类似的事情:

void foo(){
Object obj = weakRef.get();
doStuffWith(obj);
}

是否需要在完成该方法后设置 obj = null,否则我会泄漏 obj?

最佳答案

JVM 确实不需要这样做。事实上,JVM 根本不需要执行 GC。

但是不使本地引用无效的 JVM 与不执行 GC 的 JVM 一样不合理。

(好吧,有些人给 JVM 巨大的内存,并完全关闭 GC;他们只是每隔 N 天重新启动应用程序。)

关于java - 在Java中使用WeakReference时必须在使用后设置对null的强引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7341878/

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