Неизменяемость строк в Java работает следующим образом: после создания строки её нельзя изменить. 13 Когда строку изменяют, фактически создают новую строку, которая содержит изменения. 1
Неизменность строк в Java достигается путём хранения строк в виде массива символов (char[]). 1 При изменении строки создаётся новый массив символов с новым значением строки. 1
Также Java использует кэширование строк, что позволяет экономить память. 1 Если две строки содержат одинаковые символы, то они ссылаются на один и тот же объект в памяти (строка сохраняется в пуле строк). 1 Это возможно благодаря тому, что строка является неизменяемой. 1
Ещё неизменяемость строк повышает безопасность, так как не позволяет злоумышленникам изменять значения строк, например, имён пользователей и паролей. 2