StringBuffer s = new StringBuffer(45); s.append("Testing String"); s.append(" "); s.append("Concatenation Performance"); String s3 = s.toString();
再考慮下面這個(gè)例子:
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();
原因就在于每個(gè)s = s + "+" + I操作都要?jiǎng)?chuàng)建并拆除一個(gè)StringBuffer對(duì)象以及一個(gè)String對(duì)象。這完全是一種浪費(fèi),而在第二個(gè)例子中我們避免了這種情況。