Sobes.tech
Назад к вопросам
Senior
4

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

Компании, где спрашивали
cdti

Ответ от нейросети

sobes.tech AI

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

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

Пример:

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

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