本文主要是介绍StringBuilder 与 StringBuffer之默认大小与扩容,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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);
与写法一区别
实例化时,初始化大小容量为 (自定义大小),其它逻辑与写法一相同。
这篇关于StringBuilder 与 StringBuffer之默认大小与扩容的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!