Sobes.tech
Back to questions
Junior — Middle
59

Какие отличия между операцией объединения строк через конкатенацию и использованием метода append в классе StringBuilder?

Answer from AI

sobes.tech AI

Основное отличие между конкатенацией строк через оператор + и использованием метода append класса StringBuilder заключается в производительности и управлении памятью.

  • Конкатенация через + создает новый объект строки при каждой операции, так как строки в Java неизменяемы (immutable). Это приводит к созданию множества временных объектов и увеличению нагрузки на сборщик мусора, особенно в циклах или при большом количестве операций.

  • StringBuilder.append() изменяет внутренний буфер без создания новых объектов, что значительно эффективнее при последовательном добавлении строк.

Пример:

// Менее эффективно
String result = "";
for (int i = 0; i < 1000; i++) {
    result += i;
}

// Более эффективно
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 1000; i++) {
    sb.append(i);
}
String result = sb.toString();

Использование StringBuilder рекомендуется для операций с большим количеством изменений строк.