您的位置:首页 > Web前端

String 与 StringBuffer 的效率比较

2008-11-23 20:38 405 查看
看看以下代码:

将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 高这么多。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: