Sobes.tech
Junior — Middle

Atunci când se efectuează o operație de concatenare a șirurilor de caractere folosind operatorul '+', sunt create două obiecte de șir separate?

sobes.tech AI

Răspuns de la AI

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

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

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

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

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

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