Junior — Middle
Quelles sont les différences entre l'opération de concaténation de chaînes via la concaténation et l'utilisation de la méthode append dans la classe StringBuilder?
sobes.tech IA
Réponse de l'IA
Основное отличие между конкатенацией строк через оператор + и использованием метода 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 рекомендуется для операций с большим количеством изменений строк.