StringBuffer s = new StringBuffer(45); s.append("Testing String"); s.append(" "); s.append("Concatenation Performance"); String s3 = s.toString();
再考慮下面這個例子:
String s = ""; int sum = 0; for(int I=1; I<10; I++) { sum += I; s = s + "+" +I ; } s = s + "=" + sum;
分析一下為何前面的代碼比下面的代碼效率低:
StringBuffer sb = new StringBuffer(); int sum = 0; for(int I=1; I<10; I++){ sum + = I; sb.append(I).append("+"); } String s = sb.append("=").append(sum).toString();
原因就在于每個s = s + "+" + I操作都要創建并拆除一個StringBuffer對象以及一個String對象。這完全是一種浪費,而在第二個例子中我們避免了這種情況。