在我的代码中的某个时刻,我想取消Collection对象。这样做是否可能导致内存泄漏?对一个Collection对象进行NULL处理很好吗?
Set<String> set = new HashSet<String>("Test");
...
...
set = null;
if(set == null){
...
}
在我的代码中的某个时刻,我想取消Collection对象。这样做是否可能导致内存泄漏?对一个Collection对象进行NULL处理很好吗?
Set<String> set = new HashSet<String>("Test");
...
...
set = null;
if(set == null){
...
}
你不废掉一个对象 - 你改变一个变量的价值null
。理解对象,变量和引用之间的差异是非常重要的。
这很少有用,但它本身会导致变量泄漏,这是非常奇怪的。我不能立即想到会发生什么 - 除非你有一些无效检查,当然这会改变你对其他数据的行为。它可能使前面的变量值引用的集合符合垃圾回收的条件,或者它可能不会 - 它取决于是否还有其他东西仍然引用它。
是不是等同于使被空值的变量引用的对象无效? – ling
@马丁:恐怕我甚至不知道如何解析你的问题。但“对象无效”根本不是一个有意义的术语。将变量的值更改为变量值用于引用的对象。 –
就这样你知道 - 这不是有效的语法。 – Makoto