Что такое String, почему он иммутабельный? Что происходит при конкатенации?

В Java класс String представляет неизменяемую (immutable) последовательность символов.

Короткий ответ

Что ответить на собеседовании

В Java класс String представляет неизменяемую (immutable) последовательность символов. Иммутабельность означает, что после создания объекта String его содержимое нельзя изменить. Это сделано для безопасности, удобства использования в многопоточном окружении и оптимизации (например, пул строк).

Подробный разбор

Ответ с пояснениями

В Java класс String представляет неизменяемую (immutable) последовательность символов. Иммутабельность означает, что после создания объекта String его содержимое нельзя изменить. Это сделано для безопасности, удобства использования в многопоточном окружении и оптимизации (например, пул строк).

При конкатенации строк, например, с помощью оператора +, на самом деле создаётся новый объект String, который содержит объединённый текст. Старые объекты остаются неизменными. Это может приводить к избыточному созданию объектов и снижению производительности при большом количестве операций конкатенации.

Пример:

String a = "Hello";
String b = a + " World"; // создаётся новый объект String с содержимым "Hello World"

Для эффективной конкатенации в циклах рекомендуется использовать классы StringBuilder или StringBuffer, которые позволяют изменять содержимое без создания новых объектов.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее