Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> [Android面試題-6] 有關String,StringBuffer,StringBuilder類

[Android面試題-6] 有關String,StringBuffer,StringBuilder類

編輯:關於Android編程

題目:請簡單描述一下String,StringBuffer和StringBuilder的區別,並解釋一下為什麼String是不可變的。   分析:對於以上三個關於字符串的類,主要區別如下:   String:字符串常量,其屬性為final。   StringBuffer:字符串變量,線程安全。   StringBuilder:字符串變量,非線程安全。   1.String和StringBuffer的區別主要在於String是不可變的,執行如下代碼:    
String a = "1";  
a = a + "2";  
          
StringBuffer b = new StringBuffer("2");  
b.append("3");  

 

  對於與a來說,當執行a = a + "2";之後,實際上JVM生成了一個新的String對象,然後將a指向新的對象,表面上看起來沒有什麼特別的,但是底層其實執行了較多的內存操作,所以對於那些需要經常變化的字符串,最好不要用String;對於b來說,append操作只是在原來的字符串後面添加了一個字符,所以經常變換內容的字符串建議使用StringBuffer。   2.StringBuffer和StringBuilder的主要區別在與線程安全方面。   StringBuilder是非線程安全的,但是它的效率要比Buffer高,所以在單線程操作的情況下,最好用StringBuilder替代StringBuffer。     由於筆者水平有限,給各面試題提供的思路或代碼難免會有錯誤,還請讀者批評指正。另外,熱忱歡迎讀者能夠提供更多、更好的面試題,本人將感激不盡。如有任何意見或建議,歡迎在評論中告知。 博主徐方磊對本博客文章享有版權。網絡轉載請注明出處http://blog.csdn.net/shishengshi。整理出版物請和作者聯系。
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved