| String与StringBuffer的效率比较 |
| [ 作者:佚名 转贴自:网络转载 阅读次数:40 更新时间:2007-6-28 17:09:00 录入:刘光勇 ] |
|
|
|
看看以下代码:
将26个英文字母重复加了5000次,
String tempstr = "abcdefghijklmnopqrstuvwxyz"; int times = 5000; long lstart1=System.currentTimeMillis(); String str =""; for(int i=0;i<times;i++) { str+=tempstr; } long lend1=System.currentTimeMillis(); long time = (lend1-lstart1); System.out.println(time);
可惜我的计算机不是超级计算机,得到的结果每次不一定一样一般为 154735 左右。 也就是154秒。 我们再看看以下代码
String tempstr = "abcdefghijklmnopqrstuvwxyz"; int times = 5000; long lstart2=System.currentTimeMillis(); StringBuffer sb =new StringBuffer(); for(int i=0;i<times;i++) { sb.append(tempstr); } long lend2=System.currentTimeMillis(); long time2 = (lend2-lstart2); System.out.println(time2); 得到的结果为 16 有时还是 0 所以结论很明显,StringBuffer 的速度几乎是String 上万倍。当然这个数据不是很准确。因为循环的次数在100000次的时候,差异更大。不信你试试。 下一次我将解释为什么StringBuffer 的效率比String 高这么多。
|
|
|