StringBuffer существует некоторое время, как и я, где StringBuilder более современный. Моя самая ранняя работа по Java предшествовала StringBuilder. StringBuffer была единственной игрой в городе. Тебе повезло, потому что у тебя есть возможности. Они помогают лучше манипулировать струнами.

Все, что ты умеешь, я могу делать лучше
Я могу делать что угодно лучше тебя
Нет, ты не можешь
Да, я могу
Нет, ты не можешь
Да, могу
Нет, нельзя
Да, могу! Да, могу!
Ирвин Берлин, Энни, достань свой пистолет

У нас двое детей, и они могут ссориться из-за чего угодно. Считается, что они в чем-то лучше, и дебаты могут начаться быстро. StringBuffer - это старший брат StringBuilders. Оба они очень похожи, но представлены в разных версиях JDK. Они кажутся очень похожими, если вы посмотрите документацию и использование.

StringBuilder и StringBuffer

Основное отличие в том, что один синхронизируется, а другой нет. Так что, если вы не понимаете, что это значит, вам это не нужно. Синхронизация связана с многопоточностью в Java. Я забыл, где я это читал, но когда кодирование избегает многопоточности любой ценой. Начнем с того, который вы будете использовать чаще всего.

Мутабельный?

Когда вам нужно использовать StringBuilder или StringBuffer? Когда вы часто меняете некоторые струны. Это то, что документация подразумевает под изменяемым и неизменным, когда вы смотрите на StringBuffer, StringBuilder и Strings. Последний неизменен. Давайте рассмотрим пример того, что это означает.

В этом примере у нас есть строка, в которой мы ее модифицируем, и она создает новый объект. StringBuilder можно модифицировать и изменять тот же объект. Следовательно, класс StringBuilder является изменяемым, а String неизменяемым (не может быть изменен после создания).

StringBuilder

Давайте начнем обсуждение с StringBuilder. Я бы порекомендовал, если вы работаете со строками, которые сильно меняются, это ваша первая остановка. Javadoc рассказывает нам основы. «Изменчивая последовательность символов. Этот класс предоставляет API, совместимый с StringBuffer, но без гарантии синхронизации.

Этот класс разработан для использования в качестве замены для StringBuffer в местах, где строковый буфер использовался одним потоком (как это обычно бывает). По возможности рекомендуется использовать этот класс вместо StringBuffer, поскольку он будет быстрее в большинстве реализаций ». Хороший Java-разработчик всегда знает, что Javadoc поможет вам начать работу. Конечно, это еще не все.

Использовать

Вот пример использования метода append () из StringBuilder. Вероятно, это наиболее часто используемый метод. Мы создаем объект StringBuilder, а затем добавляем к нему метод append (). Обратите внимание, как мы можем добавлять различные объекты, такие как String, массив char и int.

Конструктор

StringBuilder имеет три основных конструктора, которые мы видим в этом примере. Есть пустой конструктор, возможность указать String и конструктор, который принимает int для определения длины. Также мы покажем некоторые другие методы, такие как вставка, замена и длина.

StringBuffer

Как мужчина средних лет, я чувствую себя StringBuffer. У нас обоих седые волосы, и мы показываем свой возраст. Хотя StringBuffer все еще находится в Java Development Kit или JDK, он используется лишь незначительно. Он выполняет ту же работу, что и StringBuilder, только синхронизируется. Его можно будет использовать в редких случаях, когда он вам нужен.

Конструктор

StringBuffer имеет те же типы конструкторов, что и более новый StringBuilder.

Первый конструктор - это пустой конструктор. Второй вариант - указать размер. И последнее, но не менее важное: мы можем указать String для запуска.

Методы

Методы StringBuffer также помогают изменять строки.

StringBuffer имеет метод добавления для добавления к вашей строке. Вставка позволяет вставлять текст в строку. Вы можете заменить текст в своей строке. Если вам когда-нибудь понадобится, вы также можете перевернуть свою строку.

StringBuilder и StringBuffer - полезные классы Java, которые нам понадобятся в какой-то момент. Просто помните, что если вы изменяете строки, мы должны использовать одну из них.

Чтобы определить, какой из них, если вам не нужно синхронизировать код, вы можете использовать первый. И повторюсь, если вы не знаете, что означает синхронизация, также используйте первое. StringBuffer является более старым из двух и по существу заменен на StringBuilder.

Где вы использовали StringBuilder?

Посмотрите больше интересного контента и подпишитесь на MyITCareerCoach.com