java – 附加字符串时速度问题
发布时间:2020-12-14 05:54:14 所属栏目:Java 来源:网络整理
导读:每当我尝试在字符串中添加数字时: 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(St
每当我尝试在字符串中添加数字时:
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)); 我很快得到了结果.为什么会这样? 解决方法
s = String.valueOf(j);每次调用时都需要分配一个新的String对象,这很昂贵.当包含的字符串太大时,StringBuffer只需要增加一些内部表示,这种情况发生得更少.
如果使用StringBuilder,它可能会更快,这是StringBuffer的非同步版本. 需要注意的一点是,虽然这确实适用于循环和许多其他情况,但它并不一定适用于使用以下连接字符串的所有情况: String helloWorld = getGreeting() + "," + getUsername() + "!"; 在这里,编译器可能会以它认为合适的方式优化代码,这可能会也可能不会创建StringBuilder,因为这也是一项昂贵的操作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |