先說說StringBuffer中的一些特性,後面對這些特性進行有針對的分析:
1. StringBuffer 區別與String,長度可動態變化,追加是使用append()方法進行處理。
默認容量爲16,
這裏繼承的是父類AbstractStringBuilder,其中動態變化的。
2. StringBuffer 實現CharSequence接口(字符操作)
3.StringBuffer是線程安全的。
看看源碼就知道了,在StringBuffer中好多的方法都使用了synchronized 關鍵字
synchronized 方法控制對類成員的訪問:每個實例都會對應一把鎖,每個 synchronized 方法都必須獲得調用該方法的類實例的鎖方能執行,否則所屬線程阻塞,方法一旦執行,就獨佔該鎖,直到從該方法返回時纔將鎖釋放,此後被阻塞的線程方能獲得該鎖,重新進入可執行狀態。這種機制確保了同一時刻對於每一個類實例,其所有聲明爲 synchronized 的成員函數中至多隻有一個處於可執行狀態(因爲至多隻有一個能夠獲得該類實例對應的鎖),從而有效避免了類成員變量的訪問衝突(只要所有可能訪問類成員變量的方法均被聲明爲 synchronized)。