gpt4 book ai didi

Java:这足以删除对象吗?

转载 作者:行者123 更新时间:2023-11-29 10:06:07 24 4
gpt4 key购买 nike

我有一个 HashMap,用于保存对我的应用程序模块的引用。

HashMap<String, Module> modules;

当我这样做时:

for(String key:modules.keySet()){
modules.remove(key);
}

不应该再引用这些对象,因此它们应该在某个时候被 GC 删除。我是对的还是我错过了什么?这是安全的还是有可能以某种方式重新获得对对象的访问权?

这是否与执行时发生的情况相同:

modules.clear();

?

最后是一个更复杂的问题:当使用 GWT 执行此操作时,我可以确定对象在浏览器中消失了多少?我想在用户注销时执行此操作,以防止有人使用下一台计算机检索前一个用户的任何信息。当然,大多数模块都会在 unDetach() 中“忘记”它们的数据,但我不确定,所有模块都会这样做。这些信息当然是加分项,如果有人碰巧知道我将不胜感激 =)

最佳答案

当您遍历 keySet 并同时删除元素时,第一种方法可能会导致问题。第二种方法应该做正确的事情。如果您没有对这些模块的其他引用,它们应该被垃圾回收。

关于Java:这足以删除对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7727054/

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