对于下面的代码段:我是否理解正确的内存泄露Java中
Vector v = new Vector(10);
for (int i = 1; i<100; i++)
{Object o = new Object();
v.add(o);
o = null;
}
有,因为所有的100个对象的引用都被设置为null,因此,他们将通过GC收集不会泄漏。
然而,
Vector v = new Vector(10);
for (int i = 1; i<100; i++)
{Object o = new Object();
v.add(o);
}
v= null;
会有漏电,因为我只清零的参考向量,但所有的100个对象的引用仍然存在,因此将不会被GC回收,而他们的对系统没有用处。
请帮助检查我是否正确理解Java中的内存泄漏,提前致谢!
您不应该将引用设置为null。 GC比我们知道什么时候有资格进行清理要聪明得多。 – duffymo 2013-04-07 12:26:49