1、StringBuilder 与 StringBuffer
StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
2、区别
StringBuffer 和 StringBuilder 区别在于,StringBuffer 是线程安全,StringBuilder 反之。
3、初始化大小
这里以StringBuffer说明。
构造方法:
StringBuffer();
StringBuffer(String str)
StringBuffer(CharSequence seq)
StringBuffer(int capacity)
3.1 写法一
StringBuffer sb = new StringBuffer();
sb.append("java");
实例化时,初始化大小容量为16
append方法时,会有容量大小的判断。
如果append添加字符长度大于初始化容量16,则按新算法计算容量大小
如果append的字符串长度超过16,则容量为34 (34=16 * 2 + 2)
要是append的字符串长度超过16,并且大于34,则直接为字符串需要的长度。
3.2 写法二
StringBuffer sb = new StringBuffer("java");
StringBuffer(CharSequence seq)
与写法一区别
实例化时,初始化大小容量为 (实例化参数字符串的长度+ 16),其它逻辑与写法一相同。
3.3 写法三
StringBuffer sb = new StringBuffer(20);
与写法一区别
实例化时,初始化大小容量为 (自定义大小),其它逻辑与写法一相同。