Разница между StringBuffer и StringBuilder

Разница между StringBuffer и StringBuilder
Разница между StringBuffer и StringBuilder

Видео: Разница между StringBuffer и StringBuilder

Видео: Разница между StringBuffer и StringBuilder
Видео: Java SE. Урок 27. Классы StringBuilder / StringBuffer и их методы 2024, Май
Anonim

StringBuffer против StringBuilder

Java - очень популярный объектно-ориентированный язык. В Java предоставляется класс String для хранения последовательности символов, которую нельзя изменить (после инициализации). В качестве альтернативы, язык программирования Java предоставляет два типа изменяемых последовательностей символов. То есть, когда программистам необходимо изменить определенную строку (после инициализации), им необходимо использовать класс StringBuffer или класс StringBuilder вместо класса String. StringBuffer был представлен в JDK 1.0, а класс StringBuilder был представлен в JDK 1.5, фактически как замена класса StringBuffer (для однопоточных сред).

Что такое StringBuffer?

Класс StringBuffer был представлен в JDK 1.0. Класс StringBuffer принадлежит пакету java.lang и унаследован от универсального объекта java.lang.object. Программисты не могут расширить его, так как это последний класс. Класс StringBuffer реализует интерфейсы Serializable, Appendable и CharSequience. Объект класса StringBuffer может содержать последовательность символов, которая является изменяемой и потокобезопасной. Это означает, что он очень похож на объект String, но последовательность символов (длина и содержимое) может быть изменена в любое время после инициализации объекта StringBuffer. Однако это следует делать с использованием специальных методов, предоставляемых классом StringBuffer. В классе StringBuffer есть две основные операции. Они предоставляются методами append () и insert (). Эти методы перегружены,поэтому они могут принимать данные любого типа, например целые и длинные. Оба метода сначала преобразуют любой ввод в строку, а затем добавляют (добавляет или вставляют) символы соответствующей строки к существующему объекту Stribbuffer. Метод append () добавляет преобразованную строку в конец существующего объекта StringBuffer, а метод insert () добавляет входные символы к указанной точке вставки.

Что такое StringBuilder?

Класс StringBuilder был представлен в JDK 1.5. StringBuilder API очень похож на StringBuffer API. Фактически, класс StringBuilder был фактически представлен как замена класса StringBuffer (для однопоточных приложений). Класс StringBuilder принадлежит пакету java.lang и унаследован от универсального объекта java.lang.object. Это последний класс, поэтому программисты не могут его расширить. Класс StringBuilder реализует интерфейсы Serializable, Appendable и CharSequience. Объект класса StringBuilder может содержать последовательность символов, которая является изменяемой, но не потокобезопасной. Это означает, что он очень похож на объект String, но строку можно изменить в любое время. Но класс StringBuilder не обеспечивает синхронизации и поэтому считается более быстрым, чем использование класса StringBuffer. Класс StringBuilder предоставляет методы append () и insert () с точно такой же функциональностью, как и в классе StringBuffer.

В чем разница между StringBuffer и StringBuilder?

Хотя классы StringBuilder и StringBuffer могут использоваться для изменяемых последовательностей символов в Java, у них есть ключевое отличие. В отличие от класса StringBuffer, класс StringBuilder не является потокобезопасным и не обеспечивает синхронизации. Поэтому рекомендуется использовать класс StringBuilder вместо класса StringBuffer в однопоточных приложениях, поскольку утверждается, что класс StringBuilder будет намного быстрее, чем класс StringBuffer (при нормальных обстоятельствах).

Рекомендуем: