Olá amigos,
Recentemente fiz um curso de Spring, e como curiosidade o professor Douglas Campos, citou uma coisa muitíssimo interessante: hoje usar o operador + para concatenar string pode ser uma boa opção em grande parte dos casos (a partir da hotspot do Java 6). Porque o compilador vai transformar isto para a concatenação com StringBuilder.
Isto me deixou muito intrigado, e foi procurar alguma referência oficial da Sun para escrever este post, e disseminar esta informação. Encontrei, cumprindo a premissa de quem procura acha!!! Porém!!! Achei a referencia de performance da Sun um pouco antiga, e lá no capitulo sobre imutabilidade ele diz o seguinte:
/disponível em: http://java.sun.com/docs/books/performance/1st_edition/html/JPMutability.fm.html#22028/
String result = "";
for (int i=0; i < 20; i++) {
result += getNextString();
}
Concatenating String objects
The javac compiler would automatically transform this to
String result = "";
for (int i=0; i < 20; i++) {
result = new StringBuffer().append(result)
.append(getNextString())
.toString();
}
Observe que é StringBuffer, mas como o StringBuffer não é mais recomendado pela Oracle/Sun (Sei lá como chamo isto), isto foi atualizado para usar o StringBuilder.
Se alguém tiver uma referência oficial atualizada sobre isto post por favor!
Grande Abraço!