Разница между 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 (при нормальных обстоятельствах).

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