java String、StringBuilder和StringBuffer的區別詳解
阿新 • • 發佈:2020-01-22
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。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。