Для этого фрагмента кода:Могу ли я понимать памяти Утечки правильно в Java
Vector v = new Vector(10);
for (int i = 1; i<100; i++)
{Object o = new Object();
v.add(o);
o = null;
}
Там не будет утечки, так как все ссылки на 100 объектов были установлены в нуль, таким образом, они будут собраны 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 правильно, спасибо заранее!
Вы не должны устанавливать ссылки на нуль. GC намного умнее, чем мы знаем, когда что-то может быть очищено. – duffymo