A classe StringBuffer ela foi criada para podermos ganhar mais velocidade na concatenação de strings, é uma classe que bem é simples e que não tem muitos segredos.
Muitos se perguntam e qual a diferença entre utilizar String e StringBuffer, a diferença crucial entre as duas classes é que quando utilizamos StringBuffer para realizar uma concatenação de strings nós conseguimos um ganho de performance em relação a utilização de String.
Através de alguns testes que fiz, a utilização de StringBuffer em concatenação chegou a ser 300% mais veloz do que a concatenação com String, claro que vale apena avaliar sempre a sua necessidade, abaixo segue o código que utilizei nos teste.
public class Desempenho {
public static void main(String args[]) {
Desempenho desempenho = new Desempenho();
desempenho.testaString();
desempenho.testaStringBuffer();
}
public void testaString() {
System.out.print("\nString:\n");
long ini = System.currentTimeMillis();
System.out.print("Inicio=" + ini + "\n");
String teste = "";
for (int i = 0; i < 10000; i++) {
teste += "Teste" + i + "\n";
}
long fim = System.currentTimeMillis();
System.out.print("Fim=" + fim + "\n" +
"Desempenho:" + (fim - ini));
}
public void testaStringBuffer() {
System.out.print("\nStringBuffer:\n");
long ini = System.currentTimeMillis();
System.out.print("Inicio=" + ini + "\n");
StringBuffer teste = new StringBuffer();
for (int i = 0; i < 1537344; i++) {
teste.append("Teste" + i + "\n");
}
long fim = System.currentTimeMillis();
System.out.print("Fim=" + fim + "\n " +
"Desempenho:" + (fim - ini));
}
}
Essa classe mede a diferença de desempenho entre String x StringBuffer, vale apena conferir, bons estudos!!!
Galera deixem recados com opniões, dicas, implementações e se quiserem que eu comente algum é só falar.