private final char[] value; string类被fianl修饰,所以是不可变的
进行字符串的相加,内存中就会出现多个字符串,占用空间多,效率低下
StringBuilder类:字符串缓冲区
byte[] value=new byte[16];
StringBuilder类在内存中始终是一个数组,占用空间少,效率高
超出内存的话,会自动扩容
public class stringbuilder原理 {
public static void main(String[] args) {
//StringBuilder类的构造方法
StringBuilder s=new StringBuilder();
System.out.println("s是空的:"+s);
StringBuilder s1=new StringBuilder("123"+"abc");
System.out.println("s1:"+s1);
StringBuilder s3=new StringBuilder("abc");
StringBuilder s4=s3.append("abc");
System.out.println("s4:"+s4);
System.out.println("s3:"+s3);
System.out.println(s3==s4);//
//链式编程:方法 的返回值是一个对象,可以根据对象继续调用方法
s4.append(123).append(456).append("我是append");
System.out.println(s4);
}
}
运行结果:
相关链接:https://www.bilibili.com/video/BV1fh411y7R8?p=475&spm_id_from=pageDriver