Я читаю «Лучше, быстрее, легче Java» (от Брюса Тейта и Джастина Гетланд), и я знаком с требованиями к удобочитаемости в гибких командах типа, например, что Роберт Мартин обсуждает в своих чистых книгах по кодированию. В команде, в которой я сейчас участвую, мне было сказано явно не использовать оператор +
, потому что он создает дополнительные (и ненужные) строковые объекты во время выполнения.StringBuilder/StringBuffer против «+» Оператор
Но это article, Написано в '04, рассказывает о том, как распределение объектов составляет около 10 машинных инструкций. (по существу свободный)
В нем также говорится о том, как GC также помогает сократить расходы в этой среде.
Каковы фактические компромиссы между использованием +
, StringBuilder
или StringBuffer
? (В моем случае это StringBuffer
, так как мы ограничены Java 1.4.2.)
StringBuffer
StringBuffer
для меня результаты в уродливом, менее читаемом коде, как показывает несколько примеров в книге Тейта. И StringBuffer
синхронизирован по потоку, который, кажется, имеет свои собственные затраты, которые перевешивают «опасность» при использовании оператора +
.
Мысли/Мнения?
Похожие queation здесь http://stackoverflow.com/questions/4645020/when-to-use-stringbuilder-in-java – Navi
возможно дубликат [StringBuilder против Объединение строк в ToString () в Java] (http://stackoverflow.com/questions/1532461/stringbuilder-vs-string-concatenation-in-tostring-in-java) –
Возможный дубликат [StringBuilder vs Конкатенация строк в toString() в Java] (http://stackoverflow.com/questions/1532461/stringbuilder-vs-string-concatenation-in-tostring-in-java) –