Bootstrap

StringBuilder的原理

String类和StringBuilder类的本质区别

  1. String类:
    1.字符串是常量,一旦创建不能被修改。
    2.字符串底层是一个被final修饰的数组,不能改变,是一个常量。
    3.private final byte[] value;
    4.进行字符串相加时,内存中会出现多个字符串,占用空间大,效率低下。

  2. 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.
;