Он насчитал вероятность реордеринга — и то в специально приготовленном борще. А я говорю о вероятности того, что этот реордеринг действительно что-то соптимизирует.
Не «сброс кэшей», а запрет реордеринга. И на интелах этот запрет не стоит ничего (разве что есть очень призрачный шанс на какую-нибудь мегахитрую оптимизацию на уровне компилятора, которая с запретом реордеринга обломится).
final, кроме memory visibility effects, еще и документирует намерение «эта переменная не изменяемая». Компилятор-то, и правда, без вас разберется, меняется переменная или нет. А вот человеку проще сразу видеть, что автор кода этой переменной меняться позволять не собирается. По моему опыту — это очень сильно упрощает чтение кода. Лично у меня все переменные и поля final, кроме тех, для которых я могу найти вескую причину их таковыми не делать.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.