测试类:
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。