在我的代码中的某些时候,我想要使Collection对象无效。这样做会导致内存泄漏吗?
Set<String> set = new HashSet<String>("Test");
...
...
set = null;
if(set == null){
...
}
答案 0 :(得分:4)
您不会使对象无效 - 您将变量的值更改为null
。理解对象,变量和引用之间的区别真的非常重要。
这很少有用,但导致变量泄漏本身就非常奇怪。我无法立即想到如何发生这种情况 - 当然,除非你进行了一些无效检查,这会改变你对其他数据的行为。 可能使前一个变量值引用的集合符合垃圾回收的条件,或者它可能没有 - 这取决于是否还有其它任何内容引用它。
答案 1 :(得分:2)
没有。通过使集合对象归零,无法创建内存泄漏。
顺便提一下,上面代码的一部分是没有意义的:如果你将set
设置为null,那么之后测试它为null是一个空操作。