String、StringBuffer、StringBuild

三者的区别

String:不可变的字符序列;
StringBuffer:可变的字符序列;线程安全,效率低
StringBuild:可变的字符序列;jdk5.0新增的,线程不安全,效率高
三者地层都是char[]数组

StringBuffer:底层用char[]数组存储,父类是AbstractStringBuffer

添加时候的地层

添加的时候创建了一个长度为16的char[]数组
如果添加的时候本身就有是三个字符添加
StringBuffer sb = new StringBuffer("abc");
此时会创建3+16长度的地层数组

扩容问题:

容量超过16时,底层会扩容,扩容为原来的2倍+2,再将原来的内容复制到这

可以指定容量

创建的时候可以指定底层数组的长度

上一篇:java包装类等其他类


下一篇:Java基础三