この記事を書いた経緯
以前Javaを使っているある現場に参画したのですが、変数をnullで再代入するコードを見かけました。見慣れないことをやっていたため、その理由を探るべくちょっと調べてみました。
調べてみたら
結論としては、ガベージコレクターに拾ってもらうために変数をnullに書き換えているようでした。この実装の真意については実装者に聞いてみないとわかりません。本当はビジネスロジック的に意味があったのかもしれません(そんなわけあるか)。
2010年のJavaドキュメント(参考文献1)によると「不要になった変数に明示的にNULLを代入すると、安全に再生できるメモリー上の部分をガベージコレクタが識別しやすくなります。」とあります。同様の件に言及した2010年前後のネット記事もいくつか確認できました。おそらく近年のJavaではガベージコレクタの性能が向上したり、変数の再代入は良くないという思想も相まってこのような実装はされなくなり見られなくなったのでしょう。
参考文献
1.不要になった変数に NULL を代入する
https://docs.oracle.com/cd/E19528-01/820-1613/abebi/index.html