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

Чем обеспечена неизменяемость объектов String

В Java строки неизменяемы благодаря нескольким ключевым механизмам:

  1. Класс String объявлен как final, что предотвращает наследование и переопределение методов.
  2. Все поля класса помечены как private final (например, private final char value[]), что делает их недоступными для модификации после инициализации.
  3. Все методы, которые кажутся изменяющими строку (например, concat(), substring()), на самом деле возвращают новые объекты String.

Пример:

java
String s1 = "Hello";
String s2 = s1.concat(" World"); // Создается новый объект
System.out.println(s1); // "Hello" - оригинальная строка не изменилась

Неизменяемость обеспечивает безопасность при многопоточном доступе, кэширование в пуле строк и другие оптимизации JVM.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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