Конкатенация строк на Java - способы и примеры

Конкатенация строк на Java — способы и примеры

В любом проекте Java-программист использует строки, где-то больше, где-то меньше, но в любом случае надо уметь работать со строками и работать правильно. Поэтому сегодня мы рассмотрим одну очень важную тему по работе со строками: «Конкатенация строк — способы и примеры«.

Наверняка вы уже слышали, что при работе со строками, а именно конкатенацией, не желательно использовать оператор «+». Для этих целей следует использовать StringBuffer или StringBuilder. Следует отметить, что этот вопрос является одним из самых часто задаваемых во время собеседования на должность Java Junior Developer по Java Core.

Но все же давайте рассмотрим все наиболее используемые способы объединения строк и проанализируем то, что происходит «по капотом» этих методов.

Конкатенация строк с помощью оператора «+»

PlusOperator.java

Конкатенация строк с помощью StringBuffer

Теперь давайте рассмотрим ту же программа, но с использованием StringBuffer:

StringBufferExample.java

Код конкатенации строк с помощью StringBuilder будет аналогичен выше приведенному.

Анализ производительности оператора «+» и StringBuffer

Итак, давайте посмотрим что происходит «под капотом» нашей программы, когда мы используем оператор «+» и StringBuffer или StringBuilder.

Когда мы объединяем строки с помощью оператора «+», происходит следующее:

  1. Создается новый объект StringBuilder.
  2. Строка «Prologistic» копируется в только что созданный объект StringBuilder.
  3. Вызывается метод append() для добавления строки «.com.ua» к объекту StringBuilder.
  4. Вызывается метод toString() для получения объекта типа String с объекта StringBuilder.
  5. Ссылка на только что созданный объект типа String присваивается simpleString, а старая строка «Prologistic» становится доступной для сборщика мусора.

А что же происходит, если мы используем StringBuffer или StringBuilder:

  1. Создается новый объект StringBuffer со значением «Prologistic».
  2. Вызывается метод append() для добавления строки «.com.ua» к объекту.
  3. Вызывается метод toString() для получения объекта типа String с объекта StringBuffer.

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

Следите за обновлениями на Javadevblog.com, чтобы узнать советы по эффективному использованию StringBuilder и StringBuffer.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *