【发布时间】:2010-01-13 09:36:13
【问题描述】:
每当我尝试在字符串中添加数字时:
String s=new String();
for(int j=0;j<=1000000;j++)
s+=String.valueOf(j);
我的程序正在添加数字,但速度很慢。但是当我改变我的程序并使它像这样时:
StringBuffer sb=new StringBuffer();
for(int j=0;j<=1000000;j++)
sb.append(String.valueOf(j));
我很快就得到了结果。为什么会这样?
【问题讨论】:
-
我建议您阅读 Effective Java amazon.com/Effective-Java-2nd-Joshua-Bloch/dp/0321356683 这本书将涵盖 Java 编程的基本知识。如果您还有其他问题,当然可以回到这里
-
如果您预先设置 StringBuffer 的大小,它会变得更快:
StringBuffer sb = new StringBuffer(5888896);然后如果您更改为StringBuilder,它可能会再次稍微更快。顺便说一句,您可以使用sb.append(j);来附加号码。
标签: java string performance