Sobes.tech
Junior — Middle
97

Wat zijn de verschillen tussen de operatie van string concatenatie via concatenatie en het gebruik van de methode append in de klasse StringBuilder?

Antwoord van 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 рекомендуется для операций с большим количеством изменений строк.