В общем, если ссылка собирается выйти за рамки, вам не нужно явно обнулять ее, так как она скоро исчезнет.
Единственное явное обнуление или удаление ссылок, которые я сознательно использую, это:
Закрытие ресурса, связанного с объектом, срок жизни которого больше, чем у этого ресурса. Например: реализация java.sql.Connection обычно имеет ассоциированное физическое соединение (например, Socket): когда java.sql.Connection закрыто, вы можете обнулить это физическое соединение, поскольку вы его больше не используете, в то время как фактическое java. sql.Connection будет (возможно) еще удерживаться пользователем в течение неопределенного времени. ( Я использую этот пример, так как я являюсь разработчиком драйвера JDBC, в общем случае этот пример не встречается для разработчика Java, но существуют похожие ситуации )
Обработка относительно больших «одноразовых» объектов в структуре списка или массива. Например: библиотека JavaMail предоставляет методы для получения сообщений; они возвращают массив сообщений. Если вы обрабатываете сообщения последовательно (а затем больше не нуждаетесь в них), обнуление записи массива после обработки может уменьшить объем памяти вашего приложения (с помощью IMAP он может «по требованию» загружать информацию с сервера и сохранять ее в сообщении , увеличивая его размер за счет обработки).
Вероятно, в некоторых других случаях я явно отменю ссылку, но это, как правило, означает недоступность чего-либо, не заботящегося о сборе мусора или использовании памяти.
Однако, как всегда: не просто null, потому что вы думаете, что это может помочь: null, если вы знаете, что это поможет (профилируйте код, измерьте использование памяти и т. Д.). И если это одноразовое хобби или университетское задание, не беспокойтесь.