String#concat
и +
существуют для обеспечения минимального c набора операций для типа String.
Они не эффективны, если используются несколько раз.
Но они имеют свои права как операции типа "xxx" + "yyy"
, которые вы не хотите указывать с помощью StringBuilder. (Кроме того, это конкатенация времени компиляции.)
StringBuffer
- ошибка ИМХО. Это медленнее, чем более новый StringBuilder
, поскольку он синхронизирован, но редко добавляется что-то из двух потоков (неупорядоченных).
String::concat
может быть ссылкой на метод, полезный для сокращения потока или тому подобное.