首先要和String来进行一个对比
String类
字符串是一个常量,他们的值在创建后就无法修改
字符串底层是一个被final修饰的数组不能改变,是一个常量
private final byte[ ] value
进行字符串相加,内存中就会有多个字符串,占用空间多,效率低下
例如String s=“a”+“b”+'c";
在内存中相加的过程
“a”,“b”,“c” 3个字符串
“a”+“b”=“ab” 1个字符串
“ab”+“c” =“abc”1个字符串
进行3个字母的相加就用到了5个字符串,效率很低
StrungBulider类
字符串缓冲区,可以提高字符串的的操作效率(可以看成长度可以变化的字符串)
底层是一个数组,但没有被final所修饰,可以改变长度
byte [ ]value=new byte[16];//初始长度为16
同样的“a”+“b”+'c";
StringBuilder可以直接得出"abc"
Stringbuilder在内存中始终是一个数组,占用空间小,效率高
如果超出了StringBuilder得容量,那么StringBulider会自动扩大容量,进行加倍
StringBulider的构造方法
一个是带参数的,一个是空参数的
StringBuilder();构造一个不带任何字符的字符串生成器,初始容量为16个字符
StingBuilder(String[] src)构造一个字符串生成器,初始化为指定内容的字符串内容