В Java вы можете квалифицировать локальные переменные и параметры метода с ключевым словом final.
public static void foo(final int x) {
final String qwerty = "bar";
}
Это приводит к невозможности переназначить x и qwerty в теле метода.
Эта практика подталкивает ваш код в направлении неизменности, который обычно считается плюсом. Но он также имеет тенденцию загромождать код с "окончательным" появлением повсюду. Как вы оцениваете конечное ключевое слово для локальных переменных и параметров метода в Java?