1. 程式人生 > 程式設計 >java String、StringBuilder和StringBuffer的區別詳解

java String、StringBuilder和StringBuffer的區別詳解

1.共同點:

三者都是字串類。StringBuilder和StringBuffer都是繼承AbstractStringBuilder類,儲存字串都是使用陣列進行儲存的。

2.區別:

a. String 類儲存字串使用的陣列被final進行修飾了,當對String物件進行增加修改字元時,都需要重新new一個字元陣列,將原來的值拷貝到新的字元陣列中,所以當字串的值需要經常修改的時候就需要考慮用StringBuilder或StringBuffer來進行處理了。

public final class String implements java.io.Serializable,Comparable<String>,CharSequence {
  private final char value[];
}

b.StringBuffer和StringBuilder也是使用字元陣列來進行儲存字串的,但沒有使用final進行修飾;StringBuffer定義的方法都加入了synchronized修飾,也就是說StringBuffer類方法都是執行緒安全的,而StringBuilder方法沒有被修飾,兩者常用的方法是append()。

3.使用場景:

  • 當字串值不會變化時,考慮使用String
  • 當字串的值多變的時候,考慮使用StringBuilder或者StringBuffer
  • 當要求執行緒安全時候,考慮使用StringBuffer。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。