StringBuffer原始碼閱讀

2021-09-29 01:53:50 字數 765 閱讀 7266

stringbuffer也是繼承自abstractstringbuilder類,所以他也繼承了這邊的char value和count引數

//宣告為transient的陣列變數說明不會跟著序列化出去

//用來快取tostring()方法返回的最近一次的value陣列中的字元。當修改stringbuffer物件時會被清除。

private

transient

char

tostringcache;

//用來儲存字串行中的字元。value是乙個動態的陣列,當儲存容量不足時,會對它進行擴容。

char

value;

//表示value陣列中已儲存的字元數

int count;

stringbuffer的幾乎所有方法都加上了synchronized的標識,就是為了保證他的同步性

tostring方法會把快取的最後一次改變的陣列通過string建構函式返回

@override

public

synchronized string tostring()

//直接返回string

return

newstring

(tostringcache,

true);

}

其他方法因為基本是使用abstractstringbuilder繼承下來的方法加上同步字段,不多贅述,可以參考:

stringbuilder原始碼閱讀

StringBuffer原始碼分析

先說說stringbuffer中的一些特性,後面對這些特性進行有針對的分析 預設容量為16,這裡繼承的是父類abstractstringbuilder,其中動態變化的。2.stringbuffer 實現charsequence介面 字元操作 3.stringbuffer是執行緒安全的。看看原始碼就知...

《原始碼閱讀》原始碼閱讀技巧,原始碼閱讀工具

檢視某個類的完整繼承關係 選中類的名稱,然後按f4 quick type hierarchy quick type hierarchy可以顯示出類的繼承結構,包括它的父類和子類 supertype hierarchy supertype hierarchy可以顯示出類的繼承和實現結構,包括它的父類和...

Cartographer原始碼篇 原始碼分析 1

在安裝編譯cartographer 1.0.0的時候,我們可以看到 主要包括cartorgarpher ros cartographer ceres sover三個部分。其中,ceres solver用於非線性優化,求解最小二乘問題 cartographer ros為ros平台的封裝,獲取感測器資料...