StringBuffer扩容
StringBuffer、StringBuilder都继承于AbstractStringBuilder
其中,StringBuffer是线程安全的,StringBuilder是线程不安全的。
下图为AbstractStringBuilder中扩容源码:
minCapacity:append操作插入字符串后当前的 byte[]数组的length
oldCapacity:当前byte[]数组的容量(初始大小为16),当length超过了byte[]数组的容量就进行扩容
newCapacity:新的容量对oldCapacity右移1位再加2
例子:
以初始容量16为例;10000(16的二进制)右移1位 100000
再加2,2的二进制为10 相加后为100010 转换为十进制就是34