Simplify String concatenation #22466
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As it follows from
http://alblue.bandlem.com/2016/04/jmh-stringbuffer-stringbuilder.html
and
https://habr.com/ru/post/330220/
chained
StringBuilder::append
is much faster than conventionalsb.append(); sb.append()
.Assyming that expression like
String str = str1 + str2 + str3;
at runtime will behave as chainedStringBuilder::append
we can simplify usage ofStringBuilder
in particular cases like the one of this PR.Here we have 2 cases:
if
expression is falseif
expression is trueIn the first case we don't need SB at all, as resulting expression produced by
sb.toString()
equalsthis.contentType
.And in the opposite case we have non-interrupted
StringBuilder::append
chain (later simplifiable to String concatenation with+
) and thus more simple code and better performance.