要了解StringBuilder类,先了解String类的一些相关属性:
String类:
- 字符串是常量,它们的值在创建之后不能更改
- 字符串的底层是一个被final修饰的数组,不能改变,是一个常量
- 源码:private final byte[] value;
- 如果要进行字符串拼接,内存中就会有多个字符串对象,占用空间多,效率低
StringBuilder类
- 字符串缓冲区,位于java.lang包下,可以提高字符串的操作效率(看成一个长度可以变化的字符串)
- 底层也是一个数组,但是没有被final修饰,可以改变长度,
- byte[] value = new byte[16]:初始化长度为16,若超出了容量,会自动扩容
- StringBuilder在内存中始终是一个数组,占用空间少,效率高
构造方法:
//StringBuilder空参构造方法
//StringBuilder() :构造一个没有字符的字符串构建器,初始容量为16个字符。
StringBuilder bu1 = new StringBuilder();
System.out.println("bu1:"+bu1);// bu1:" "
//StringBuilder带参构造方法
//StringBui