回覆列表
  • 1 # 測試軒

    String 是 Java 語言非常基礎和重要的類,提供了構造和管理字串的各種基本邏輯。它是典型的 Immutable 類,被宣告成為 final class,所有屬性也都是 final 的。也由於它的不可變性,類似拼接、裁剪字串等動作,都會產生新的 String 物件。由於字串操作的普遍性,所以相關操作的效率往往對應用效能有明顯影響。

    StringBuffer 是為解決上面提到拼接產生太多中間物件的問題而提供的一個類,我們可以用 append 或者 add 方法,把字串新增到已有序列的末尾或者指定位置。StringBuffer 本質是一個執行緒安全的可修改字元序列,它保證了執行緒安全,也隨之帶來了額外的效能開銷,所以除非有執行緒安全的需要,不然還是推薦使用它的後繼者,也就是 StringBuilder。

    所以在沒有大量字串拼接的場景下,就用String,如果有大量字串拼接而且有執行緒安全問題就用StringBuffer,如果沒有執行緒安全問題就用StringBuilder。

  • 2 # Big愛吃鬼

    記住兩個詞:改變和不改變

    String和StringBuffer,它們可以儲存和操作字串,即包含多個字元的字元資料。這個String類提供了數值不可改變的字串。而這個StringBuffer類提供的字串進行修改。當你知道字元資料要改變的時候你就可以使用StringBuffer。典型地,你可以使用StringBuffers來動態構造字元資料。

  • 中秋節和大豐收的關聯?
  • 《被嫌棄的松子一生》明明是喜劇,為什麼會讓人流淚?