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

Оглавление:

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

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

Видео: Разница между String StringBuffer и StringBuilder в Java
Видео: Строки в Java. String, StringBuilder, StringBuffer, Wrappers. Java Professional. Урок 5 2024, Ноябрь
Anonim

Ключевое различие - String против StringBuffer против StringBuilder в Java

String, StringBuffer и String Builder - это классы в Java. String широко используется в программировании на Java. Как только объект String создан, его невозможно изменить. Каждый раз, когда в String происходит изменение, создается новая строка. Даже если это конкатенация существующей строки, она создает новую строку. Это вызывает потерю памяти. Классы StringBuffer и StringBuilder в Java используются для изменения String. Ключевое различие между String, StringBuffer и StringBuilder в Java заключается в том, что String - это класс для создания объекта типа String, который представляет собой последовательность символов, StringBuffer - это класс, который используется для изменения Strings, обеспечивающий безопасность потоков, а StringBuilder - это класс класс, который используется для изменения строк, не обеспечивающих потокобезопасность.

СОДЕРЖАНИЕ

1. Обзор и основные различия

2. Что такое String в Java

3. Что такое StringBuffer в Java

4. Что такое StringBuilder в Java

5. Сходства между String StringBuffer и StringBuilder в Java

6. Сравнение бок о бок - String, StringBuffer и StringBuilder в Java в табличной форме

7. Резюме

Что такое String в Java?

Класс String находится в пакете java.lang. Каждый раз, когда программист создает String, это объект типа String. Строки неизменны, это означает, что после создания объекта его нельзя изменить. Объекты, созданные с использованием классов-оболочек, таких как Integer, Byte, Float, Double, также являются неизменяемыми. Строковый литерал заключен в двойные кавычки. например, «Hello World». Каждый раз при создании строкового литерала виртуальная машина Java (JVM) проверяет пул констант String. Если String существует, возвращается ссылка на пул констант String. Если это новая строка, этот объект создается в пуле констант String.

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

Рисунок 01: Программа Java с использованием String, StringBuffer и StringBuilder

Обратитесь к приведенному ниже фрагменту кода.

Строка s1 = «Привет»;

s1 = s1 + «Мир»;

System.out.println (s1);

В первом операторе s1 относится к «Hello» в пуле констант String. Во втором операторе JVM не изменяет существующую строку. Вместо этого он создает новую строку как «Hello World», и теперь s1 ссылается на эту новую строку. Существующий объект «Hello» все еще существует в пуле констант String.

Если есть код, Строка s1 = «Привет»;

Строка s2 = s1;

s1, s2 оба будут ссылаться на объект String «Hello».

Что такое StringBuffer в Java?

Класс StringBuffer используется для изменения объектов String. Следовательно, эти объекты можно изменять. StringBuffer определяет четыре конструктора. StringBuffer (), StringBuffer (размер целого числа), StringBuffer (String str), StringBuffer (charSequence ch)

См. Код ниже, StringBuffer s1 = новый StringBuffer («Привет»);

s1.append («Мир»);

System.out.println (s1);

В операторе 1 s1 относится к объекту «Hello» в куче. Объект является изменяемым, потому что он создается с помощью StringBuffer. В заявлении 2 «World» добавляется к тому же строковому объекту «Hello».

Строковые объекты, созданные с помощью класса StringBuffer, могут экономить память. StringBuffer обеспечивает безопасность потоков, поскольку два потока не могут одновременно получить доступ к одному и тому же методу в классе StringBuffer. Безопасность потока снижает производительность StringBuffer. Класс StringBuffer содержит такие методы, как append (), insert (), reverse (), replace ().

Что такое StringBuilder в Java?

Класс StringBuilder используется для изменения объектов String. Следовательно, эти объекты можно изменять. Функциональность аналогична StringBuffer, но не обеспечивает потокобезопасность. StringBuilder имеет конструкторы, такие как StringBuilder (), StringBuilder (int size), StringBuilder (String str).

См. Приведенный ниже код.

StringBuilder s1 = новый StringBuilder («Привет»);

s1.append («Мир»);

System.out.println (s1);

В операторе 1 s1 относится к объекту «Hello» в куче. Объект является изменяемым, потому что он создается с помощью StringBuilder. В заявлении 2 «World» добавляется к тому же строковому объекту «Hello». Нет создания полностью нового объекта String.

Строковые объекты, созданные с помощью класса StringBuilder, могут экономить память. В отличие от StringBuffer, StringBuilder не обеспечивает потокобезопасность, потому что два потока могут одновременно обращаться к одному и тому же методу в классе StringBuilder. Класс StringBuilder содержит такие методы, как append (), insert (), reverse (), replace ().

В чем сходство между String, StringBuffer и StringBuilder в Java?

Все можно использовать для создания строк

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

Различать статью в середине перед таблицей

Строка против StringBuffer против StringBuilder

Строка Строка - это класс Java, который используется для создания объекта типа String, который представляет собой последовательность символов.
StringBuffer StringBuffer - это класс Java, который используется для создания объектов String, которые можно изменять с обеспечением безопасности потоков.
StringBuilder StringBuilder - это класс, который используется для создания строковых объектов, которые можно изменять без обеспечения безопасности потоков.
Изменчивость
Строка Строка - это неизменяемый класс.
StringBuffer StringBuffer - это изменяемый класс.
StringBuilder StringBuilder - это изменяемый класс.
Безопасность потоков
Строка Методы String являются потокобезопасными.
StringBuffer Методы StringBuffer являются потокобезопасными и синхронизированными.
StringBuilder Методы StringBuilder небезопасны для потоков и не синхронизируются.
Спектакль
Строка Веревка быстрая.
StringBuffer StringBuffer работает медленно.
StringBuilder StringBuilder работает быстро.

Резюме - String против StringBuffer против StringBuilder в Java

String, StringBuffer и StringBuilder кажутся одинаковыми, но имеют разные значения. Все это классы Java. Разница между String, StringBuffer и StringBuilder в Java состоит в том, что String - это класс для создания объекта типа String, который представляет собой набор символов, StringBuffer - это класс, который используется для изменения Strings и обеспечения безопасности потоков, а StringBuilder - это класс класс, который используется для изменения строк, не обеспечивающих потокобезопасность.

Скачать PDF String vs StringBuffer vs StringBuilder в Java

Вы можете загрузить PDF-версию этой статьи и использовать ее в автономных целях в соответствии с примечанием к цитированию. Загрузите PDF-версию здесь. Разница между String StringBuffer и StringBuilder в Java

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