Разница между String, StringBuffer и StringBuilder в Java — пример прилагается

Опубликовано: 2022-01-30
Разница между String, StringBuffer и StringBuilder в Java — сравнение и пример прилагаются

В этом руководстве по Java мы рассмотрим разницу между Java String, StringBuffer и StringBuilder.

Давайте начнем:

Нить:

Класс String представляет строки символов. Все строковые литералы в программах на Java, такие как «crunchify», реализованы как экземпляры этого класса. Строки постоянны; их значения не могут быть изменены после их создания.

Строковый буфер:

Поточно-безопасная изменяемая последовательность символов. Строковый буфер подобен String, но может быть изменен.

В любой момент времени он содержит определенную последовательность символов, но длину и содержание последовательности можно изменить с помощью вызовов определенных методов.

Строковые буферы безопасны для использования несколькими потоками.

StringBuilder:

Изменяемая последовательность символов. Этот класс предоставляет API, совместимый со StringBuffer, но без гарантии синхронизации.

Этот класс предназначен для использования в качестве замены StringBuffer в тех местах, где строковый буфер использовался одним потоком (как это обычно бывает).

По возможности рекомендуется использовать этот класс вместо StringBuffer, поскольку в большинстве реализаций он будет быстрее.

Давайте сравним все приведенные ниже характеристики String, StringBuffer и StringBuilder.

Нить Строковый буфер StringBuilder
Поток безопасный? да да Нет
Синхронизировано? да да Нет
Модифицируемый? Нет (неизменяемый) Да (изменяемый) Да (изменяемый)
Место хранения Струнный пул куча куча
Представление Медленный Быстро Быстрее

Java-код:

  • Создать класс: CrunchifyStringVsStringBufferVsStringBuilder.java
  • Поместите в него код ниже
  • Сохранить файл

В этом уроке мы добавляем добавление, добавление строки всего 199999 раз.

Результат консоли IntelliJ IDEA:

Запустите указанную выше программу как приложение Java в IntelliJ IDEA или в консоли Eclipse, и вы получите результат, как показано ниже.

Дайте мне знать, если у вас возникнут какие-либо проблемы с запуском вышеуказанной программы или возникнут вопросы между String, StringBuffer и StringBuilder.