" Это зависит "
Я не знаю о Java, но в .net (C #, VB.net ...) обычно не требуется назначать нуль, когда вам больше не нужен объект.
Однако учтите, что это «обычно не требуется».
Анализируя ваш код, компилятор .net делает хорошую оценку времени жизни переменной ... чтобы точно сказать, когда объект больше не используется. Поэтому, если вы напишете obj = null, это может выглядеть так, как будто объект все еще используется ... в этом случае назначать null контрпродуктивно.
Есть несколько случаев, когда действительно может помочь присвоение null. Один из примеров: у вас есть огромный код, который выполняется в течение длительного времени, или метод, который выполняется в другом потоке, или какой-то цикл. В таких случаях может помочь присвоение null, чтобы сборщику мусора было легко узнать, что он больше не используется.
Для этого нет жестких правил. Пройдя по указанному выше месту в вашем коде, запустите профилировщик, чтобы узнать, помогает ли он каким-либо образом. Скорее всего, вы не увидите выгоды.
Если вы пытаетесь оптимизировать код .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