Когда использовать метод String # concat () в Java? - PullRequest
0 голосов
/ 09 марта 2020

Я изучал различные темы о производительности конкатенации строк. Практически для ответа рекомендуем использовать StringBuilder или StringBuffer для уменьшения накладных расходов (или оператор +, если оператор конкатенации находится за пределами l oop). Это довольно ясно, но я все еще удивляюсь, почему Java имеет метод String format() и concat(), хотя он неэффективен. Тест производительности здесь: ссылка . Кто-то упомянул String format(), который может быть полезен для Localization цели (я не очень понимаю, хотя у меня уже есть ключевое слово для поиска позже), но какова цель оставшегося? Это полезно только для обратной совместимости?

1 Ответ

2 голосов
/ 09 марта 2020

String#concat и + существуют для обеспечения минимального c набора операций для типа String.

Они не эффективны, если используются несколько раз.

Но они имеют свои права как операции типа "xxx" + "yyy", которые вы не хотите указывать с помощью StringBuilder. (Кроме того, это конкатенация времени компиляции.)

StringBuffer - ошибка ИМХО. Это медленнее, чем более новый StringBuilder, поскольку он синхронизирован, но редко добавляется что-то из двух потоков (неупорядоченных).

String::concat может быть ссылкой на метод, полезный для сокращения потока или тому подобное.

...