StringBuffer源碼分析

先說說StringBuffer中的一些特性,後面對這些特性進行有針對的分析:


1. StringBuffer 區別與String,長度可動態變化,追加是使用append()方法進行處理

 默認容量爲16,



這裏繼承的是父類AbstractStringBuilder,其中動態變化的。



2. StringBuffer 實現CharSequence接口(字符操作)

    

3.StringBuffer是線程安全的。

看看源碼就知道了,在StringBuffer中好多的方法都使用了synchronized 關鍵字

synchronized 方法控制對類成員的訪問:每個實例都會對應一把鎖,每個 synchronized 方法都必須獲得調用該方法的類實例的鎖方能執行,否則所屬線程阻塞,方法一旦執行,就獨佔該鎖,直到從該方法返回時纔將鎖釋放,此後被阻塞的線程方能獲得該鎖,重新進入可執行狀態。這種機制確保了同一時刻對於每一個類實例,其所有聲明爲 synchronized 的成員函數中至多隻有一個處於可執行狀態(因爲至多隻有一個能夠獲得該類實例對應的鎖),從而有效避免了類成員變量的訪問衝突(只要所有可能訪問類成員變量的方法均被聲明爲 synchronized)。  




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章