Встречается на собеседованиях • сегодня

Почему класс String immutable

Класс String immutable в Java по нескольким причинам:

  1. Безопасность – строки часто используются для хранения паролей, URL, подключений. Если бы они были изменяемыми, их содержимое могло быть изменено в другом месте кода.
  2. Кэширование хэшей – строка кэширует свой хэш-код (hashCode()), что ускоряет работу с HashMap, HashSet. Изменение строки нарушило бы этот механизм.
  3. Потокобезопасность – неизменяемость позволяет безопасно использовать строки в многопоточной среде без синхронизации.
  4. Оптимизация памяти – благодаря пулу строк (String Pool) JVM может переиспользовать существующие строки, экономя память.

Пример:

java
String s1 = "Hello";  
String s2 = "Hello";  // s1 и s2 ссылаются на один объект в пуле
s1 = s1.concat(" World");  // Создается новый объект, s1 не изменяется
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы