StringBuilder 是j2se1.5.0才新增的类,在此之前的版本若有相同的需求,则使用java.util.StringBuffer。事实上StringBuilder 被设计为与StringBuffer具有相同的操作接口。在单线程下使用StringBuilder 会有较好的效率,因为StringBuilder 没有处理同步的问题。StringBuffer则会处理同步问题,如果StringBuilder 会有多线程下被操作,则要改用StringBuffer。
String s = "a" + "b" + "c";
会被编译器优化为:String s = "abc";
String a = "a";
String b = "b";
String c = "c";
String s = a + b + c;
会被 JVM 解释成了 StringBuffer 对象的拼接,最终结果等于:
StringBuffer temp = new StringBuffer();
temp.append(a).append(b).append(c);
String s = temp.toString();