Класс
StringBuilder предназначен для создания и манипуляции изменяемыми строками. Это альтернативный класс для String, который позволяет изменять его содержимое без создания новых объектов при каждой операции изменения, что делает его более эффективным при частых операциях изменения строк.Класс
StringBuilder использует массив символов для хранения строки и динамически изменяет его размер по мере необходимости. Переменная count отслеживает текущую длину строки.Упрощенно:
public final class StringBuilder extends AbstractStringBuilder implements java.io.Serializable, CharSequence {
char[] value; // Массив символов, хранящий содержимое строки
int count; // Количество символов в текущем объекте StringBuilder
}
Примерная реализация метода
append:
public StringBuilder append(String str) {
if (str == null) str = "null";
int len = str.length();
ensureCapacityInternal(count + len); // расширить массив если нужно
str.getChars(0, len, value, count);
count += len;
return this;
}
Метод
str.getChars(..) копирует строку str в массив value в позицию count (то есть добавляет в конец массива).#java #stringbuilder #implementation
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3❤1👨💻1
Класс String является неизменяемым (immutable) - модифицировать объект такого класса нельзя, можно лишь заменить его созданием нового экземпляра.
Класс StringBuffer изменяемый - использовать StringBuffer следует тогда, когда необходимо часто модифицировать содержимое.
Класс StringBuilder был добавлен в Java 5 и он во всем идентичен классу StringBuffer за исключением того, что он не синхронизирован и поэтому его методы выполняются значительно быстрей.
#java #String #StringBuffer #StringBuilder
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤3
StringBuilder и StringBufferИ
StringBuilder, и StringBuffer используются для работы со строками, но между ними есть важные отличия.✔️ StringBuilder быстрее, но не потокобезопасен.
✔️ StringBuffer потокобезопасен, но медленнее из-за синхронизации.
StringBuilder:StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
System.out.println(sb); // Hello WorldStringBuffer:StringBuffer sb = new StringBuffer("Hello");
sb.append(" World");
System.out.println(sb); // Hello WorldStringBuilder для лучшей производительности.#java #stringbuilder #stringbuffer
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤3🔥2