源碼分析-StringBuffer擴容

StringBuffer擴容

StringBuffer、StringBuilder都繼承於AbstractStringBuilder
其中,StringBuffer是線程安全的,StringBuilder是線程不安全的。

下圖爲AbstractStringBuilder中擴容源碼:
AbstractStringBuffer

minCapacity:append操作插入字符串後當前的 byte[]數組的length
oldCapacity:當前byte[]數組的容量(初始大小爲16),當length超過了byte[]數組的容量就進行擴容
newCapacity:新的容量對oldCapacity右移1位再加2
例子:
以初始容量16爲例;10000(16的二進制)右移1位 100000 
再加2,2的二進制爲10 相加後爲100010 轉換爲十進制就是34 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章