В чем разница между String и StringBuilder в Java

«В чем разница между String и StringBuilder в Java» — вопрос из категории Java, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

String — неизменяемый (immutable) класс, любая операция (конкатенация, замена символов) создает новый объект, что может быть неэффективно при частых изменениях.

StringBuilder — изменяемый (mutable) класс, оптимизирован для операций с текстом (добавление, вставка, удаление), работает быстрее, так как модифицирует существующий буфер.

Пример:

String str = "Hello";
str += " World"; // Создается новый объект

StringBuilder sb = new StringBuilder("Hello");
sb.append(" World"); // Изменяется существующий объект

Когда использовать:

  • String — для константных строк или редких изменений.
  • StringBuilder — для интенсивных операций (циклы, множественные конкатенации).