Какие бывают строковые классы?

Для работы со строками, в Java, кроме String, существуют ещё два класса: StringBuffer и StringBuilder. В отличие от String они реализуют паттерн строитель (Builder), и способны изменять строки без создания нового объекта.

Эти два класса очень похожи друг на друга, и используют одинаковые методы и конструкторы. Но между ними есть различие. Класс StringBuffer появился первым, и чтобы он работал правильно в любых условиях все его методы сделали синхронными, а значит потокобезопасными. Класс StringBuilder появился позже и его методы однопоточные. Исходя из этого, в обычных условиях, рекомендуется использовать Класс StringBuilder, так как он работает быстрее. Но, если для работы приложения важна потокобезопасность, лучше применять StringBuffer.

Классы StringBuffer и StringBuilder невозможно создать литералом, для этого нужно использовать конструктор. Также экземпляры этих классов не допускается конкатенировать с помощью оператора +, для этого нужно вызывать методы insert или append.

При конкатенации констант компилятор создаёт неизменяемую (интернированную) строку. В то же время, для неконстантных выражений, неявно вызываются методы класса StringBuilder.

return "Hello" + "World"; // скомпилируется в 
return "HelloWorld";
return "Hello" + x; // скомпилируется в
return new StringBuilder().append("Hello").append(x).toString();

Как в продуктовой команде

Обучающая платформа AndroidSprint

Kanban-доска, код-ревью и Git Flow. Учитесь работать в процессах, которые используют в продакшене — задачи, как в Jira

  • Kanban: доска задач как в Jira — привыкаете к инструментам с первого дня
  • Процессы: код-ревью, Git workflow, спринты — как на реальной работе
  • Треки: Android, Backend, QA — полный цикл разработки
Перейти на платформу →
Как в продуктовой команде AndroidSprint — обучающая платформа
Перейти на платформу →

Бесплатная диагностика с сениор разработчиком

Запишитесь на консультацию — перезвоним в рабочие часы

Или свяжитесь удобным способом

Вам также может быть интересно

Узнать подробнее
Курс AndroidSprint

Глубокое обучение Android разработке с 0 до получения оффера. Только персональная практика с гарантией получения продуктового опыта.

Курс AndroidSprint - Глубокое <strong>обучение Android разработке с 0 до получения оффера</strong>. Только персональная практика с гарантией получения продуктового опыта.
Узнать подробнее
Узнать подробнее
Практикум по Kotlin

Изучение Котлин с 0 для профессиональной разработки. Личный ментор и разбор кода задач через git-flow.

Практикум по Kotlin - Изучение Котлин <strong>с 0 для профессиональной разработки</strong>. Личный ментор и разбор кода задач через git-flow.
Узнать подробнее
Узнать подробнее
Бесплатные уроки по Kotlin разработке

Самостоятельное освоение базы по языку для дальнейшего развития в Android/back-end разработке или в автотестах.

Бесплатные уроки по Kotlin разработке - <span>Самостоятельное освоение базы по языку для дальнейшего развития в Android/back-end разработке или в автотестах.</span>
Узнать подробнее
Узнать подробнее
Onboarding в разработку

Полное обучение Android разработке с нуля до получения оффера. Делаем упор на практику и обратную связь

Onboarding в разработку - <span>Полное обучение Android разработке с нуля до получения оффера. Делаем упор на практику и обратную связь</span>
Узнать подробнее
Узнать подробнее
Обучающий Kotlin телеграм бот (с тестами)

Ваш основной инструмент для изучения основ языка. Бесплатные тесты и практика внутри.

Обучающий Kotlin телеграм бот (с тестами) - Ваш основной <span>инструмент для изучения основ языка.</span> Бесплатные тесты и практика внутри.
Узнать подробнее
Узнать подробнее
Бесплатные уроки по Android разработке

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

Бесплатные уроки  по Android разработке - Самостоятельное <span>обучение разработке Андроид приложений.</span> Понятные видеоуроки с разжеванными примерами.
Узнать подробнее
Узнать подробнее
Курс по UI/Unit тестированию

Для ручных тестировщиков, которые готовы осваивать автотесты с использованием актуального стека технологий. [в разработке]

Курс по UI/Unit тестированию - Для ручных тестировщиков, которые <span>готовы осваивать автотесты</span> с использованием актуального стека технологий. [в разработке]
Узнать подробнее
Узнать подробнее
Обучающий Android телеграм бот (с тестами)

Бесплатные теоретические тесты для самопроверки. А также информер на практических спринтах по Android.

Обучающий Android телеграм бот (с тестами) - Бесплатные <span>теоретические тесты для самопроверки.</span> А также информер на практических спринтах по Android.
Узнать подробнее
ИИ-ментор код-ревью и голосовые собесы
Открыть