隨筆-14  評論-0  文章-6  trackbacks-0

          String 與 StringBuffer 的效率比較

          看看以下代碼:
          將26個英文字母重復(fù)加了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);

          可惜我的計算機不是超級計算機,得到的結(jié)果每次不一定一樣一般為 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);
          ?得到的結(jié)果為 16 有時還是 0
          所以結(jié)論很明顯,StringBuffer 的速度幾乎是String 上萬倍。當(dāng)然這個數(shù)據(jù)不是很準(zhǔn)確。因為循環(huán)的次數(shù)在100000次的時候,差異更大。不信你試試。
          下一次我將解釋為什么StringBuffer 的效率比String 高這么多。

          posted on 2007-01-16 11:33 高遠 閱讀(125) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 湖州市| 庆城县| 阳高县| 东平县| 沭阳县| 石渠县| 江华| 淮南市| 合川市| 东港市| 洞口县| 澜沧| 鸡西市| 阳信县| 台江县| 屏东县| 武强县| 手机| 安宁市| 湛江市| 江川县| 辉县市| 南陵县| 镇安县| 绥芬河市| 静安区| 新和县| 虞城县| 久治县| 镶黄旗| 三原县| 莱州市| 灵武市| 七台河市| 凤凰县| 丹棱县| 临夏市| 临汾市| 崇文区| 龙口市| 台山市|