NULL集合对象是否合适?

时间:2014-03-28 19:33:21

标签: java collections

在我的代码中的某些时候,我想要使Collection对象无效。这样做会导致内存泄漏吗?

  Set<String> set = new HashSet<String>("Test");
  ...
  ...
  set = null;
  if(set == null){
     ... 
  }

2 个答案:

答案 0 :(得分:4)

您不会使对象无效 - 您将变量的值更改为null。理解对象,变量和引用之间的区别真的非常重要。

这很少有用,但导致变量泄漏本身就非常奇怪。我无法立即想到如何发生这种情况 - 当然,除非你进行了一些无效检查,这会改变你对其他数据的行为。 可能使前一个变量值引用的集合符合垃圾回收的条件,或者它可能没有 - 这取决于是否还有其它任何内容引用它。

答案 1 :(得分:2)

没有。通过使集合对象归零,无法创建内存泄漏。

顺便提一下,上面代码的一部分是没有意义的:如果你将set设置为null,那么之后测试它为null是一个空操作。