Ainda há salvação para o operador "+"?(){
Dicas

Ainda há salvação para o operador "+"?

Apesar da má impressão e da péssima imagem criada, o operador de concatenação não afeta a performance sempre que utilizado. Veja:

cruz 1. Strings com várias linhas

String text=
"Hello\n"+
"World\n"+
"Again";

Neste caso, pode-se inserir vários blocos de texto concatenados. O compilador cria um único objeto String e a concatenação ocorre em tempo de execução.

2.Mensagens curtas

System.out.println("x = "+x+ " y = "+y);

Como o compilador age:

System.out.println((new StringBuilder()) .append("x = ").append(x).append(" y = ").append(y)
.toString());

O compilador não gera vários String. Útil para economizar codificação.

Agora, para aqueles interessados nos bytecodes: De acordo com o tópico publicado em http://kaioa.com/node/59, para concatenação de dois ou três operandos, utiliza-se o operador "+"; para quatro ou mais, dê preferencia para StringBuffer. Quem diria... um simples "+" pode gerar tanta polêmica quanto discutir uma linguagem apropriada para construir uma aplicação! Com o encapsulamento, os detalhes por vezes nos escapam e com um leque de opções disponíveis poucas vezes temos a curiosidade de saber as peculiaridades de cada uma.

prato-string Para aplicações corriqueiras ou de criticidade pequena, pode ser algo bobo com o que se preocupar. Mas vejamos um exemplo básico e não tão distante: Programação para dispositivos móveis. Os dispositivos móveis possuem quantidade de memória limitada e poder de processamento baixo se comparado à desktops, por exemplo. Um prato cheio. E limitado. Neste caso, a forma como se concatenam as possíveis strings de seu aplicativo pode fazer uma diferença significativa em um ambiente tão limitado. Uma pesquisa a mais pode trazer grandes benefícios à suas aplicações, bem como conhecimento. Fica aí a dica.

Referências

StringBuilder vs StringBuffer vs String.concat - done right.
StringBuffer versus String.


}