Конкатенация строк в Java: почему советы 2008 года всё ещё работают — и почему этого уже недостаточно
Вы наверняка видели такой код - for (String s : data) { result += s; } сотни раз. Что с ним не так? Ведь он выглядит безобидно, почти идиоматично. Но в продакшене под нагрузкой этот цикл способен генерировать сотни мегабайт мусора в секунду - даже если сам результат никому не нужен. И казалось бы, проблема конкатенации строк в Java давно решена. Джунам говорят: используй StringBuilder и будет тебе щастье. А статьи десятилетней давности сравнивают + и append() в бенчмарках и ставят точку. В сегодняшней статье я копнул немного глубже и оказалось, что реальность сложнее. Вред не исчез - он принял новые, менее очевидные формы. Заглянуть
https://habr.com/ru/articles/1031336/
#конкатенация_строк #stringbuilder #invokedynamic #stringconcatfactory #escape_analysis #аллокации_памяти #сборщик_мусора_gc #String_Templates #java #jvm

Конкатенация строк в Java: почему советы 2008 года всё ещё работают — и почему этого уже недостаточно
for (String s : data) { result += s; } Вы наверняка видели такой код сотни раз. Что с ним не так? Ведь он выглядит безобидно, почти идиоматично. Но в продакшене под нагрузкой этот цикл способен...
