A String
невозможно изменить при его создании. Это означает, что все его внутренние поля объявлены как final, и он не предоставляет метода для обновления его внутреннего содержимого. Поэтому, когда вы объявляете строку как «я строка», вы знаете, что объявленная строка будет хранить это значение до конца времени.
Метод должен быть объявлен как final, если вы не хотите, чтобы метод был переопределен классом, который расширяет ваш. Класс, имеющий только заключительные методы, все еще может быть изменяемым, если какой-либо из этих методов изменяет переменные внутри класса.
Мне нравится использовать немодифицируемые классы, это помогает мне в любой момент узнать состояние моей программы и таким образом предотвратить ошибки, которые будет трудно поймать.