final フィールドのセマンティクス
final フィールドは初期化されたら変更されることはありません。そのため、final フィールドへのアクセスと、通常のフィールドへのアクセスは、その意味するところ (セマンティクス) が少し異なってきます。例えば、通常のフィールドの内容の参照は、「そのタイミングでの値」を取得するという意味を持ちますが、final フィールドの場合は内容が変わりませんから、「そのタイミングでの」という意味は抜け落ちます。Java は final フィールドのセマンティクスを活用して、メモリアクセスの最適化をしたり、同期化を減らしたり、セキュリティを担保したりしています。Java 言語仕様に沿って確認してみたいと思います。