String类和StringBuilder类的本质区别
-
String类:
1.字符串是常量,一旦创建不能被修改。
2.字符串底层是一个被final修饰的数组,不能改变,是一个常量。
3.private final byte[] value;
4.进行字符串相加时,内存中会出现多个字符串,占用空间大,效率低下。 -
StringBuilder类:
1.又叫字符串缓冲区,可以提高字符串的操作效率(可以看成是一个可以变化的字符串)。
2.底层也是一个数组,但是没有被final修饰,所以可以改变长度,默认长度是16,能够自动扩容。
3.byte[] value = new byte[16];
4.在内存中不会像String类一样会出现多个数组,它始终是一个数组,占用空间小,效率高。
构造方法
public class Demo01StringBuilder {
public static void main(String[] args) {
//空参数的构造方法
StringBuilder sb01 = new StringBuilder();
System.out.