java 迴圈中String與StringBuilder效率探究
阿新 • • 發佈:2019-01-03
測試類:
public class StringTest { @Test public void testString() { String str = ""; for (int i = 0; i < 3; i++) { str += i; } System.out.println(str); } @Test public void testStringBuilder() { StringBuilder builder = new StringBuilder(); for (int i = 0; i < 3; i++) { builder.append(i); } System.out.println(builder.toString()); } }
通過javap -c StringTest得到位元組碼檔案如下:
通過編譯得到的位元組碼檔案可以看出來,testString()方法第5-32步為for迴圈,在迴圈中new StringBuilder進行拼接,這種效率肯定不如下面的testStringBuilder()方法先在迴圈外建立StringBuilder。