Пока существует множество причин использовать ключевое слово final в Java, один из тех, что я продолжаю слышать снова и снова, заключается в том, что это делает ваш код более безопасным. Хотя это, похоже, имеет смысл в этом тривиальном случае:
public class Password
{
public final String passwordHash;
...
}
С ключевым словом final вы можете ожидать, что никакой вредоносный код не сможет изменить переменную passwordHash. Однако с использованием отражения можно изменить последний модификатор в поле passwordHash.
Итак, "final" обеспечивает любую реальную безопасность, или это просто плацебо?
Edit: Есть очень интересная дискуссия, и я бы хотел принять более одного ответа. Спасибо всем за ваш вклад.