String、StringBuffer、StringBuilder的一些小經驗……,bufferbuilder

來源:互聯網
上載者:User

String、StringBuffer、StringBuilder的一些小經驗……,bufferbuilder

  一說String、StringBuffer和StringBuilder,想必大家都很熟悉,這三者經常在我們的面試題中出現,我也是看到了關於這三個的經典面試題,才觸動了我之前工作中的一些經曆,故而根據我自己的經驗,來寫寫自己的感悟,分享於諸位。

  首先來看下我看到的這兩道面試題:

  1.String和StringBuffer區別,哪個效率高。

   答:String 是對一串字元進行操作是不可變類

              StringBuffer是對一串字元進行操作,但是可變類

     String每用一次就需要產生一次效率低。

       

  2.StringBuffer和StringBuilder有什麼區別?

   答:Stringbuilder 和Stirngbuffer都是可變對象,Stringbuilder 的運行速度快,線程不安全。

   

    這兩道題的答案是正確的,但是在實際編碼中如何來合理運用這三者呢?

    首先,String類型是不可變的,那麼我們一定要切記不能用String在迴圈中使用連接字串,特別是web工程中,當大量訪問的情況下,這種方式消耗的資源非常大。如下:

  

1 //這種串連方法一定要避免2 for(int i=0;i<100;i++){3     String a = "a";4     String b = "b";5     System.out.println(a+b);6 }

   那麼,String應該用到什麼情況下呢?我們根據它不可變的性質,當遇到重複使用的固定的字串時,將字串定義為靜態常量,再使用StringBufferStringBuilder來進行拼接操作。如下:

 1 public class StringTest { 2      3     private static final String STRING = "天"; 4      5     public void setSystem(){ 6         StringBuilder f = new StringBuilder("5"); 7         System.out.println(f.append(STRING)); 8     } 9     10     public static void main(String[] args) {11         StringTest s = new StringTest();12         s.setSystem();13     }14 }

   

  接下來,講StringBufferStringBuilder的使用場合。

  我們已知:StringBuffer是安全執行緒的,速度較慢的;而StringBuilder是不安全的,速度較快的。

  那麼我們要分析一下,是保證安全執行緒,還是追求速度。

  我們在進行web項目開發時,通常會使用架構,那就要看看使用的架構是單線程的還是多線程的,如果架構是安全執行緒的,那我們就可以追求速度,使用StringBuilder即可。如果是不安全的,那最好使用StringBuffer

  不過這也不是絕對的,在開發中可以根據項目要求來靈活選擇。

 

 

  

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.