/**
*
* String ,stringBuffer,stringBuilder的区别?
* string:不可变的字符序列
* 底层结构用char[]存储
*
* stringBuffer:可变的字符序列,线程安全的
* 底层结构用char[]存储
* stringBuilder:可变的字符序列,线程不安全,但效率更高!
* 底层结构用char[]存储
*
* 源码分析:
* String str1=new String();//new char[0];
* String str2=new String("abc");//new char[]{'a','b','c'};
*
* StringBuffer sb1=new StringBuffer();//new char[16];底层创建了一个长度为16的数组
* sb1.append('a');//value[0]='a';
* ab1.append('b');//value[1]='b';
*
* StringBuffer sb2=new StringBuffer("abc");//char []value=new char["abc".length+16];
* //问题1:System.out.println(sb2.length);//输出为3
* //问题2:扩容问题:如果要添加的数据底层数组存不下了,就需要扩容底层的数组
* 默认情况下,扩容为原来长度*2+2,同时将原有数据复制到新数组之中。
*
* @author Baobao
* @create 2021-08-03 15:43
*/
【Java-7】string,stringbuffer,stringbuilder
最新推荐文章于 2024-07-11 14:28:22 发布