StringBuffer原始碼分析

2021-08-09 20:02:54 字數 630 閱讀 9153

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

預設容量為16,

這裡繼承的是父類abstractstringbuilder,其中動態變化的。

2. stringbuffer 實現charsequence介面(字元操作)

3.stringbuffer是執行緒安全的。

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

synchronized 方法控制對類成員的訪問:每個例項都會對應一把鎖,

每個 synchronized 方法都必須獲得呼叫該方法的類例項的鎖方能

執行,否則所屬執行緒阻塞,方法一旦執行,就獨佔該鎖,直到從該方法返回時才將鎖釋放,此後被阻塞的執行緒方能獲得該鎖,重新進入可執行

狀態。這種機制確保了同一時刻對於每乙個類例項,其所有宣告為 synchronized 的成員函式中至多只有乙個處於可執行狀態(因為至多只有

乙個能夠獲得該類例項對應的鎖),從而有效避免了類成員變數的訪問衝突(只要所有可能訪問類成員變數的方法均被宣告為 synchronized)

。  

StringBuffer原始碼閱讀

stringbuffer也是繼承自abstractstringbuilder類,所以他也繼承了這邊的char value和count引數 宣告為transient的陣列變數說明不會跟著序列化出去 用來快取tostring 方法返回的最近一次的value陣列中的字元。當修改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平台的封裝,獲取感測器資料...