0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

変数をnullで再代入するのはなぜか(Java)

Posted at

この記事を書いた経緯

以前Javaを使っているある現場に参画したのですが、変数をnullで再代入するコードを見かけました。見慣れないことをやっていたため、その理由を探るべくちょっと調べてみました。

調べてみたら

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

参考文献

1.不要になった変数に NULL を代入する
https://docs.oracle.com/cd/E19528-01/820-1613/abebi/index.html

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?