Я читаю "Лучше, быстрее, легче Java" (Брюс Тейт и Джастин Гетланд), и я знаком с требованиями к удобочитаемости в гибких командах типа, например, что Роберт Мартин обсуждает в своих чистых книгах по кодированию. В команде, в которой я сейчас участвую, мне было сказано явно не использовать оператор +, поскольку он создает дополнительные (и ненужные) строковые объекты во время выполнения.
Но это статья, Написанная в '04, говорит о том, как распределение объектов составляет около 10 машинных команд. (по существу свободный)
В нем также говорится о том, как GC также помогает снизить затраты в этой среде.
Каковы фактические компромиссы между использованием +, StringBuilder или StringBuffer? (В моем случае это StringBuffer, только если мы ограничены Java 1.4.2.)
StringBuffer для меня приводит к уродливому, менее читаемому коду, как показывает несколько примеров в книге Тейта. И StringBuffer синхронизируется по потоку, который, как представляется, имеет свои собственные затраты, которые перевешивают "опасность" при использовании оператора +.
Мысль/мнение?