Я знаю, как компилятор интерпретирует конечное ключевое слово в Java, но как мы, программисты, интерпретируем его значение? Должно ли быть:
1) Эта переменная не может быть изменена (например, используется внутренним классом)
или
2) Я не планирую изменять эту переменную ( может иметь некоторые преимущества оптимизации для переменных-членов).
Я спрашиваю, потому что я работал над кодом, где все объявлено окончательным по умолчанию (вариант 2 выше), который, на мой взгляд, обесценивает ключевое слово и скрывает значения, которые действительно т изменения! Есть ли преимущества производительности при объявлении переменных final?