Tipik olarak hayır.
Ama her şey gibi: bağlıdır. Bugünlerde Java'daki GC ÇOK iyidir ve artık ulaşılamaz hale geldikten çok kısa bir süre sonra her şey temizlenmelidir. Bu, yerel değişkenler için bir yöntem bıraktıktan hemen sonra ve bir sınıf örneğine artık alanlar için başvurulmadığında gerçekleşir.
Yalnızca aksi takdirde referans olarak kalacağını biliyorsanız açıkça boş vermeniz gerekir. Örneğin etrafta tutulan bir dizi. Artık ihtiyaç duyulmadığında, dizinin tek tek öğelerini boş bırakmak isteyebilirsiniz.
Örneğin, ArrayList'teki bu kod:
public E remove(int index) {
RangeCheck(index);
modCount++;
E oldValue = (E) elementData[index];
int numMoved = size - index - 1;
if (numMoved > 0)
System.arraycopy(elementData, index+1, elementData, index,
numMoved);
elementData[--size] = null;
return oldValue;
}
Ayrıca, bir nesnenin açıkça boş bırakılması, bir nesnenin, hiç referans kalmadığı sürece doğal olarak kapsam dışına çıkmasından daha erken toplanmasına neden olmaz.
Her ikisi de:
void foo() {
Object o = new Object();
}
ve:
void foo() {
Object o = new Object();
o = null;
}
İşlevsel olarak eşdeğerdir.