Рубрики
Без рубрики

Буферизация строк на Java

StringBuffer в java, класс StringBuffer в Java, Методы Java StringBuffer, Что такое StringBuffer, Конструктор StringBuffer, Методы, Емкость, добавление кода

Автор оригинала: Pankaj Kumar.

StringBuffer в java используется для создания изменяемых строковых объектов. Это означает, что мы можем использовать StringBuffer для добавления, изменения, замены, объединения и управления строками или последовательностью символов. Соответствующие методы в классе StringBuffer соответственно создаются для выполнения этих функций.

В Java строки, как известно, являются неизменяемыми или не редактируемыми, если они не перезаписаны. Именно здесь появляется класс StringBuffer, в котором он может размещать последовательности символов и при этом включать изменяемую функцию.

Буферизация строк на Java

Некоторые важные моменты, касающиеся StringBuffer в java, заключаются в следующем:

  • StringBuffer очень похож на класс String, но с функциями изменяемости.
  • В отличие от строк, в которых длина и распределение памяти являются окончательными, StringBuffer имеет существующие методы для изменения этих свойств.
  • StringBuffer потокобезопасен, большинство его методов синхронизированы. Таким образом, объект StringBuffer не может быть доступен или использоваться несколькими потоками одновременно.
  • ява.ланг.StringBuffer расширяется AbstractStringBuilder абстрактный класс.
  • StringBuffer наследует clone() , equals() , finalize() , getClass() , Хэш-код() , notify() и notifyAll() методы из java.lang.Объект супер класс.
  • StringBuffer реализует Последовательность символов , Добавляемые и Сериализуемые интерфейсы.
  • Метод StringBuffer capacity() может использоваться для извлечения памяти, доступной для добавления новых последовательностей символов, за пределами которой будет происходить выделение.
  • По сравнению с классом StringBuilder, StringBuffer работает медленнее из-за синхронизации.

Класс Java StringBuffer обладает гибкостью выделения памяти последовательности символов. Это означает, что мы можем изменить данную строку с помощью класса StringBuffer. Что делает это возможным, так это то, что класс StringBuffer резервирует условную память для будущих изменений.

Схема классов StringBuffer

На рисунке ниже показаны интерфейсы, реализованные классом StringBuffer. Обратите внимание, что StringBuffer расширяет класс AbstractStringBuilder , который был представлен в Java 1.5, когда также был представлен StringBuilder.

Конструкторы строковых буферов

  1. StringBuffer() : Создает буфер строк с пустым содержимым и 16 зарезервированными символами по умолчанию.

  2. StringBuffer(int Размер буфера) : Создает буфер строк с переданным аргументом в качестве размера пустого буфера.

  3. StringBuffer(строка строки) : Создает буфер строк с переданной строкой в качестве исходного содержимого буфера. Для целей модификации предварительно выделено 16 условных символов памяти, не включая буфер.

Методы строкового буфера

  1. length() : Возвращает длину объекта StringBuffer.
  2. capacity() : Возвращает емкость объекта StringBuffer.
  3. Вывод, полученный приведенным выше примером программы StringBuffer:

  4. добавить() : добавляет указанное строковое представление аргумента в конец существующего строкового буфера. Этот метод перегружен для всех примитивных типов данных и объектов.
  5. Выходные данные : Привет, мир 2017

  6. метод insert() : метод insert() принимает два параметра – целочисленное значение индекса для вставки значения и значение для вставки. Индекс указывает StringBuffer, куда вставить переданную последовательность символов. Опять же, этот метод перегружен для работы с примитивными типами данных и объектами.
  7. Выходные данные : Привет, мир 2017

  8. обратный(): Изменяет существующее содержимое строки или последовательности символов в буфере и возвращает его. Объект должен иметь существующее содержимое, иначе будет выдано исключение NullPointerException .
  9. Вывод : dlroW olleH

  10. удалить(int startIndex, int endIndex) : принимает два целочисленных аргумента. Первый служит начальным индексом удаления, а второй-конечным индексом удаления. Поэтому последовательность символов между startIndex и endIndex–1 удаляется. Возвращается оставшееся содержимое строки в буфере.
  11. deleteCharAt(индекс int) : удаляет один символ в строке внутри буфера. Местоположение удаленного символа определяется переданным целочисленным индексом. Возвращается оставшееся содержимое строки в буфере.
  12. заменить(int startIndex, int endIndex, String str) : Принимает три аргумента: первые два являются начальным и конечным индексом существующего строкового буфера. Поэтому последовательность символов между startIndex и endIndex–1 удаляются. Затем строка, переданная в качестве третьего аргумента, вставляется в startIndex.

Это все для StringBuffer на Java. Большую часть времени нам не нужно использовать StringBuffer, потому что строка неизменна, и мы можем использовать StringBuilder в однопоточных средах. Вы должны использовать StringBuffer только тогда, когда несколько потоков изменяют его содержимое.

Ссылка: API Doc