StringBuffer vs. StringBuilder

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();


你可能感兴趣的:(jvm,多线程,优化,String,J2SE,编译器)