Junior — Middle
Waarom ontstaan er geen overbodige stringobjecten in het geheugen bij gebruik van StringBuilder?
sobes.tech AI
Antwoord van AI
StringBuilder в Java использует внутренний изменяемый массив символов (char[]), который расширяется по мере необходимости. В отличие от обычных строк (String), которые являются неизменяемыми и при каждой конкатенации создаётся новый объект, StringBuilder изменяет содержимое этого массива без создания новых строковых объектов.
Это означает, что при последовательном добавлении строк через методы append() не создаётся множество промежуточных объектов String, что значительно снижает нагрузку на сборщик мусора и экономит память.
Пример:
StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(" World");
String result = sb.toString();
Здесь создаётся только один StringBuilder и в конце одна итоговая строка, а не несколько промежуточных строк.