三者的区别
String:不可变的字符序列;
StringBuffer:可变的字符序列;线程安全,效率低
StringBuild:可变的字符序列;jdk5.0新增的,线程不安全,效率高
三者地层都是char[]数组
StringBuffer:底层用char[]数组存储,父类是AbstractStringBuffer
添加时候的地层
添加的时候创建了一个长度为16的char[]数组
如果添加的时候本身就有是三个字符添加
StringBuffer sb = new StringBuffer("abc");
此时会创建3+16长度的地层数组
扩容问题:
容量超过16时,底层会扩容,扩容为原来的2倍+2,再将原来的内容复制到这
可以指定容量
创建的时候可以指定底层数组的长度