コード内で変更されていない場合、Java フィールドを 'final' と宣言する必要がありますか? 質問する

コード内で変更されていない場合、Java フィールドを 'final' と宣言する必要がありますか? 質問する

私の質問は主にパフォーマンスに関するものです。たとえば、コンパイラは、オブジェクトのインスタンス化後に一部の変数が変更されないことをよく知っています。では、なぜ final にこだわるのでしょうか?

ここには多くの構造的/論理的理由が考えられると思いますが、パフォーマンスの観点から言えば、それは重要ですか?

ありがとう、

ベストアンサー1

モダンなJVM、最終すべきではないパフォーマンスに影響します。これは特にプライベートフィールドに当てはまりますが、非プライベートフィールドの場合でも、JITは非ファイナルフィールドをファイナルフィールドとして最適化し、最適化解除実際にフィールドを変更するコードを読み込む場合。

そうは言っても、final を使用する主な理由はパフォーマンスではなく、コードの保守性を高めることです。フィールドを final にすることで、コードを読む人が考慮しなければならない「可動部分」の数が減り、コードを理解するのがずっと簡単になります。

おすすめ記事