1. 程式人生 > 其它 >Java String、StringBuilder、StringBuffer類

Java String、StringBuilder、StringBuffer類

1.String類

  • 建立字串物件後,字串物件不可以發生改變,並且這個字串物件儲存在方法區中的字串常量池中。
  • 即使想改變字串物件,那麼也只是在字串常量池中重新建立了一個字串物件而已。

2.StringBuffer類

  • 他的父類是AbstractStringBuilder
  • 創鍵的字串在記憶體中為一個char型別的陣列,預設的長度是16。
  • 建立的字串物件可以發生改變:
    1. 例如使用append()方法可以增加
      1. 使用這個方式增加的符串和String採用"+"號有什麼區別?
        1. String採用+號進行字串的拼接,但是相當於是重新建立了一個字串物件
        2. StringBuffer 採用append()方法進行增加,只是改變了字串物件的值,並沒有再重新建立一個的字串物件。
        3. StringBuilder採用append()方法進行增加,只是改變了字串物件的值,並沒有再重新建立一個的字串物件。
  • StringBuffer類中的所有的方法都是前面帶有synchronized關鍵字(關鍵字的意思是“同步的”),執行緒安全

3.StringBuilder類

  • 他的父類是AbstractStringBuilder
  • 建立的字串在記憶體中為一個char型別的陣列,預設長度是16,這一點和StringBuffer是相同的
  • StringBuilder類中的方法不帶有synchronized關鍵字,執行緒不安全

 什麼時候用String呢?什麼時候用StringBuffer呢?什麼時候用StringBuilder呢?

  在字串不經常變化的場景中可以使用 String 類,例如常量的宣告、少量的變數運算等   在頻繁進行字串的運算(如拼接、替換、刪除等),並且執行在多執行緒的環境中,則可以考慮使用 StringBuffer,例如 XML 解析、HTTP 引數解析和封裝等。   在頻繁進行字串的運算(如拼接、替換、刪除等),並且執行在單執行緒的環境中,則可以考慮使用 StringBuilder,如 SQL 語句的拼裝、JSON 封裝等。

本文來自部落格園,作者:程式設計師hg,轉載請註明原文連結:https://www.cnblogs.com/hg-blogs/p/15535995.html