String类
字符串是常量:他们的值在创建后不能更改.
字符串底层是一个被final修饰的数组,不能改变,是一个常量.
private final byte[] value;
进行字符串的相加,内存找那个就会有多个字符串,占用空间多,效率低.
String s = "a"+"b"+"c" = "abc"
StringBuilder类
字符串缓冲区,可以提高字符串的操作效率(一个长度可变得字符串)
底层也是一个数组,但是底层没有被final修饰,可以改变长度.
byte[] value = new byte[16];
"a"+"b"+"c" = "abc"
StringBuiler在内存中始终是一个数组,占用空间少,效率高
如果超出了StringBuiler的容量,会自动扩容.