以下为字符串+的示例 :
public void test(){ String str = ""; for(int i=0;i<100;i++){ str +=i; } }
反编译后(jad反编译工具):
public void test() { String str = ""; for(int i = 0; i < 100; i++) str = (new StringBuilder()).append(str).append(i).toString(); }
可见java编译时把+ 替换为StringBuilder实现。
但存在问题,由于循环所以构建了100个StringBuilder对象。
改正为:
public void test(){ String str = ""; StringBuilder stringBuilder = new StringBuilder(); for(int i=0;i<100;i++){ stringBuilder.append(i); } str = stringBuilder.toString(); }
使用一个StringBuilder即可。
建议:多次字符串+操作的时候,使用StringBuilder 替代。
相关推荐
String StringBuffer和StringBuilder 区别之源码解析 从源码角度简单对它们之间的区别进行了验证
String,StringBuffer,StringBuilder区别。几乎所有的应用开发都离不开操作字符串,理解字符串的设计和实现以及相关 工具如拼接类的使用,对写出高质量代码是非常有帮助的
String和StringBuilder类的区String和StringBuilder类的区别String和StringBuilder类的区别String和StringBuilder类的区别别
String、StringBuilder和StringBuffer的区别 String、StringBuilder和StringBuffer的区别 String、StringBuilder和StringBuffer的区别
String ,StringBuffer与StringBuilder的区别
String:字符串常量 StringBuffer:字符创... StringBuilder:字符创变量 从上面的名字可以看到,String是“字符创常量”,也就是不可改变的对象。对于这句话的理解你可能会产生这样一个疑问 ,比如这段代码:
测试string的+和String.Format()和StringBuilder.Append()性能差距,一个检测它们时间的测试
介绍了String、StringBuffer、StringBuilder的使用方法,以及理论知识
String类的应用 ””,null和string.Empty的区别 Stringbuilder方法 StringBuilder 和 String 的区别?
简单的介绍了String、StringBuffer和StringBuilder的区别
stringbuilder用法 String、StringBuilder、StringBuffer 用法比较String、StringBuilder、StringBuffer 用法比较String、StringBuilder、StringBuffer 用法比较String、StringBuilder、StringBuffer 用法比较String...
String及StringBuffer和StringBuilder的区别
对于很多Java行业的菜鸟来说,弄清楚String;StringBuffer;StringBuilder三者之间的区别是很有必要的,很多面试面试官都会问到这个知识点。集合网络上很多牛人的各种经典分析的总结,花了两个小时概括总结得出了现在...
string,stringbuffer,stringbuilder
本资源为String和StringBuilder效率测试代码,可直接运行,通过测试可以得出清晰的结果
day09【API、String类、StringBuilder类】.pdf
Java中String,StringBuffer与StringBuilder的区别和用法。
string,stringBuffer,stringBuilder
目录StringStringBuffer与StringBuilder总结 String 官方解释: String类是不可变类,即一旦一个String对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁。 也就是说,当我们String a = ...
从内存方面解释Java中String与StringBuilder的性能差异.docx