JAVA中字符串連接效率的測試

 原:http://www.54xue.com/w/39/n-10839.html

利用週末的時間,比較了下JAVAString ,StringBuffer,SrtingBuilder三個對象連接字符串的效率。
比較下究竟誰的效率高。因爲我們經常都聽有經驗的人說,避免使用
String通過“+”連接字符串,特
別是連接的次數很多的時候,一定要用
StringBuffer,但究竟效率多高,速度多快,我也沒有測試過,
所以我就動手測試下,順便把測試結果跟大家一起分享,希望大家共同討論此問題。

下邊是我的測試代碼,可直接運行:

packagecn.com.test;
 publicclassTestStringConnectTime {
   
  //連接時間的設定
   privatefinalintn= 20000;
   
   publicstaticvoidmain(String[] args){
       TestStringConnectTime test =newTestStringConnectTime ();
       test.testStringTime();
       test.testStringBufferTime();
       test.testStringBuilderTime();
    }
   
   /**
     *測試String連接字符串的時間
     */
   publicvoidtestStringTime(){
      longstart = System.currentTimeMillis();
       String a ="";
      for(intk=0;k<n;k++ ){
           a +="_"+ k;
       }
      longend = System.currentTimeMillis();
      longtime = end - start;
       System.out.println("String time:"+ time);
      //System.out.println("String str:" + str);
    }
   
   /**
     *測試StringBuffer連接字符串的時間
     */
   publicvoidtestStringBufferTime(){
      longstart = System.currentTimeMillis();
       StringBuffer b = newStringBuffer() ;
      for(intk=0;k<n;k++ ){
           b.append("_"+ k );
       }
      longend = System.currentTimeMillis();
      longtime = end - start;
       System.out.println("StringBuffer time:"+ time);
      //System.out.println("StringBuffer str:" + str);
    }
  
   /**
     *測試StringBuilder連接字符串的時間
     */
   publicvoidtestStringBuilderTime(){
      longstart = System.currentTimeMillis();
       StringBuilder c = newStringBuilder() ;
      for(intk=0;k<n;k++ ){
           c.append("_"+ k );
       }
      longend = System.currentTimeMillis();
      longtime = end - start;
       System.out.println("StringBuilder time:"+ time);
      //System.out.println("StringBuffer str:" + str);
    }
}
 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章