源码分析-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 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章