Com o Eclipse M4 com suporte integral ao java 1.5, fiz esse testezinho de desempenho das classes String, StringBuffer e a nova StringBuilder.
Experimentem rodar com 50.000 a 100.000 iterações para ver a lerdeza da String.
A diferença de desempenho entre a StringBuilder e a StringBuffer é considerável também, coisa de 10% a 25%.
import java.util.GregorianCalendar;
public class StringTeste {
public static void main(String[] args) {
StringBuilder builder = new StringBuilder();
StringBuffer buffer = new StringBuffer();
String string = new String();
int loop = 10000;
long inicio;
long fim;
inicio = new GregorianCalendar().getTimeInMillis();
for(int i = 0; i < loop; i++) {
string += "oi";
}
fim = new GregorianCalendar().getTimeInMillis();
System.out.println((fim - inicio));
inicio = new GregorianCalendar().getTimeInMillis();
for(int i = 0; i < loop; i++) {
buffer.append("oi");
}
fim = new GregorianCalendar().getTimeInMillis();
System.out.println((fim - inicio));
inicio = new GregorianCalendar().getTimeInMillis();
for(int i = 0; i < loop; i++) {
builder.append("oi");
}
fim = new GregorianCalendar().getTimeInMillis();
System.out.println((fim - inicio));
}
}

