最近在头条上看到一篇帖子,说Java8开始,字符串拼接时,“+”会被编译成StringBuilder,所以,字符串的连接操作不用再考虑效率问题了,事实真的是这样吗?要搞明白,还是要看看Java编译后的字节码。
先比较这样两段代码。最简单的字符串拼接,一个用“+”,一个用StringBuilder。
public void useOperator(){
String a = "abc";
String b = "efg";
String c = a + b;
System.out.println(c);
}
public void useStringBuilder(){
String a = "abc";
String b = "efg";
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(a);
stringBuilder.append(b);
System.out.println(stringBuilder.toString());
}
用javap去看这个代码的字节