首先要和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)构造一个字符串生成器,初始化为指定内容的字符串内容
常用方法
public StringBuilder append();添加任意类型数据的字符串形式,并返回给当前对象本身
qppend方法返回的是this,也就是调用方法对象,this==bu
另外使用append方法无需接受返回值
另外使用append方法无需接受返回值
这里可以用append进行一个链式编程
链式编程:方法的返回值是一个对象,可以继续调用方法
StringBuilder和String之间可以互相转换
String–>StringBuilder
使用StringBuilder中的构造方法
StringBuilder(String src) 构造一个字符串生成器,并初始化为指定内容的字符串\\
StingBuilder–>String
使用StringBuilder的toString方法
如有错误,欢迎大佬指出