" Зависит от "
Я не знаю о Java, но в .net (C #, VB.net ...) обычно не требуется присваивать нуль, когда вам больше не нужен объект.
Однако обратите внимание, что это "обычно не требуется".
Анализируя ваш код, компилятор .net хорошо оценивает время жизни переменной ... чтобы точно определить, когда объект больше не используется. Так что, если вы напишите obj = null, на самом деле это может выглядеть так, как будто obj все еще используется ... в этом случае непродуктивно назначать значение null.
В некоторых случаях это может помочь присвоить нуль. Например, у вас есть огромный код, который выполняется в течение длительного времени, или метод, который выполняется в другом потоке, или какой-то цикл. В таких случаях это может помочь присвоить значение null, чтобы GC было легко узнать, что он больше не используется.
Для этого не существует жесткого и быстрого правила. Придерживаясь вышесказанного, поместите null-assignments в ваш код и запустите профилировщик, чтобы посмотреть, поможет ли это в любом случае. Скорее всего, вы не видите выгоды.
Если вы пытаетесь оптимизировать код .net, то мой опыт показывает, что забота о методах Dispose и Finalize на самом деле более выгодна, чем забота о пустых значениях.
Некоторые ссылки по теме:
http://blogs.msdn.com/csharpfaq/archive/2004/03/26/97229.aspx
http://weblogs.asp.net/pwilson/archive/2004/02/20/77422.aspx