Di solito no.
Ma come tutte le cose: dipende. Il GC in Java in questi giorni è MOLTO buono e tutto dovrebbe essere ripulito molto poco dopo che non è più raggiungibile. Questo è subito dopo aver lasciato un metodo per le variabili locali e quando un'istanza di classe non è più referenziata per i campi.
Hai solo bisogno di null esplicitamente se sai che rimarrebbe referenziato altrimenti. Ad esempio un array che viene mantenuto in giro. Potresti voler annullare i singoli elementi dell'array quando non sono più necessari.
Ad esempio, questo codice da ArrayList:
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;
}
Inoltre, l'annullamento esplicito di un oggetto non causerà la raccolta di un oggetto prima che se uscisse dall'ambito in modo naturale finché non rimangono riferimenti.
Tutti e due:
void foo() {
Object o = new Object();
}
e:
void foo() {
Object o = new Object();
o = null;
}
Sono funzionalmente equivalenti.