微信搜索我吃你家米了关注公众号
字符串String是常量,是不能改变的,但是缓冲区的字符串是可以改变的。
String类的底层实现是一个被final关键字修饰的数组,其值是不能进行修改的。
private final byte[] value
当我们进行字符串的拼接操作时,就会产生很多字符串数组,占用很多的内存空间,降低程序效率:
String s = "a" + "b" + "c" = "abc";
一共会产生5个字符串数组
"a"
"b"
"ab"
"c"
“abc”
StringBuilder底层也是数组,但是它并没有被Final关键字进行修饰,可以改变长度
byte[] value = new byte[16]
同样的进行字符拼接操作,StringBuilder始终都是一个数组
StringBuilder初始容量是16字节,如果字符串超出了16字节,StringBuilder会自动扩容
StringBuilder的构造方法
空参构造方法
StringBuilder sb = new StringBuilder();