文章目錄
- 一.參數說明
- 二.方法說明
-
- 1.toString
一.參數說明
StringBuffer也是繼承自AbstractStringBuilder類,是以他也繼承了這邊的char [] value和count參數
//聲明為transient的數組變量說明不會跟着序列化出去
//用來緩存toString()方法傳回的最近一次的value數組中的字元。當修改StringBuffer對象時會被清除。
private transient char[] toStringCache;
//用來存儲字元序列中的字元。value是一個動态的數組,當存儲容量不足時,會對它進行擴容。
char[] value;
//表示value數組中已存儲的字元數
int count;
二.方法說明
StringBuffer的幾乎所有方法都加上了synchronized的辨別,就是為了保證他的同步性
1.toString
toString方法會把緩存的最後一次改變的數組通過String構造函數傳回
@Override
public synchronized String toString() {
//如果是空的話,就重新複制一份
if (toStringCache == null) {
toStringCache = Arrays.copyOfRange(value, 0, count);
}
//直接傳回String
return new String(toStringCache, true);
}
其他方法因為基本是使用AbstractStringBuilder繼承下來的方法加上同步字段,不多贅述,可以參考:
StringBuilder源碼閱讀