Habituellement, non.
Mais comme toutes les choses: ça dépend. Le GC en Java, ces jours-ci est TRÈS bon et tout ce qui doit être nettoyé très peu de temps après il n'est plus accessible. C'est juste après avoir quitté une méthode pour les variables locales, et quand une instance de classe n'est plus référencé pour les champs.
Vous ne devez explicitement la valeur null si vous savez qu'il resterait référencé autrement. Par exemple, un tableau qui est maintenu autour de. Vous souhaitez peut-être à null les différents éléments de la matrice quand ils ne sont plus nécessaires.
Par exemple, ce code de liste de tableaux:
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; // Let gc do its work
return oldValue;
}
Aussi, explicitement micropression un objet ne sera pas provoquer un objet à être pris plus tôt que si elle vient de sortir de la portée naturellement aussi longtemps que l'absence de références restent.
À la fois:
void foo() {
Object o = new Object();
/// do stuff with o
}
et:
void foo() {
Object o = new Object();
/// do stuff with o
o = null;
}
Sont fonctionnellement équivalents.