メンバー変数を final としてマークすると、メイン メモリから再読み込みする必要がないため、パフォーマンス上の利点があるというのがコンセンサスのようです。私の質問は、変数が変更できないことが明らかな場合、javacまたはHotspotが自動的にこれを行うかどうかです。たとえば、javac は以下のこのクラスで 'x' を final にします...
public class MyClass {
private String x;
MyClass(String x) {
this.x = x;
}
public String getX() {
return x;
}
}
二次的な点として、メンバーを final としてマークするとコードの実行が速くなるという経験的証拠を誰かが作成しましたか? リモート呼び出しやデータベース ルックアップを行うアプリケーションでは、メリットは無視できますか?