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