При выполнении операции конкатенации строк с использованием оператора '+', создаются ли два отдельных объекта строки?

В Java оператор '+' для конкатенации строк не создаёт два отдельных объекта строки.

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

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

В Java оператор '+' для конкатенации строк не создаёт два отдельных объекта строки. При использовании '+' компилятор обычно преобразует выражение в вызов StringBuilder, который эффективно объединяет строки без создания множества промежуточных объектов.

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

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

В Java оператор '+' для конкатенации строк не создаёт два отдельных объекта строки. При использовании '+' компилятор обычно преобразует выражение в вызов StringBuilder, который эффективно объединяет строки без создания множества промежуточных объектов.

Например, код:

String result = "Hello, " + "world!";

Компилируется примерно в:

String result = new StringBuilder()
    .append("Hello, ")
    .append("world!")
    .toString();

Таким образом, создаётся один итоговый объект строки, а не несколько промежуточных. Это оптимизирует производительность и уменьшает нагрузку на сборщик мусора.

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

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

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

Подробнее