话说StringBuilder【小白学Java-学习笔记15】

1.StringBuilder的原理

String类:
字符串是常量,它们的值在创建后不可以改变。字符串的底层是被final修饰的数组,不能改变,是个常量
private final byte[] value;
StringBuilder类:
字符串缓冲区,可以提高字符串的操作效率(可以看作一个长度可以发生变化的字符串)。底层也是一个数组,但是没有被final修饰,可以改变长度。
byte[] value = new byte[16]
StringBuilder在内存中始终是一个数组,占用空间少,效率高。如果内容超出了StringBuilder的容量,StringBuilder会自动扩容

2.StringBuilder的方法

2.1.StringBuilder的构造方法

package stringBuilder.demo1;

/**
 * StringBuilder的构造方法
 *  空参构造 StringBuilder():构造一个不带任何字符的字符串生成器,其初始容量为16个字符
 *  带参构造 StringBuilder(String str):构造一个字符串生成器,并初始化为指定的字符串内容
 */
public class Demo01StringBuilder {
    public static void main(String[] args) {
        //空参构造 StringBuilder()
        StringBuilder bu1 = new StringBuilder();
        System.out.println("bu1:"+bu1);//bu1:
        //带参构造 StringBuilder(String str)
        StringBuilder bu2 = new StringBuilder("abc");
        System.out.println("bu2:"+bu2);//bu2:abc
    }
}

2.2StringBuilder的成员方法

1.append()

package stringBuilder.demo1;

/**
 * StringBuilder的成员方法
 *  public StringBulider append(..):添加任意类型数据的字符串形式,并返回当前对象自身
 */
public class Demo02StringBuilder {
    public static void main(String[] args) {
        //创建StringBuilder对象
        StringBuilder bu = new StringBuilder();
        System.out.println("bu:"+bu);
        System.out.println("============");
        //使用StringBuilder的append方法
        StringBuilder bu1 = bu.append("abc");
        System.out.println("bu1:"+bu1);
        System.out.println("============");
        //引用类型,使用“==”比较时比较的是地址值
        System.out.println(bu==bu1);
        System.out.println("===================");
        /**
         * 使用append方法无需接收返回值
         * 所以当我们调用StringBuilder的append方法时可以使用链式编程,即
         * bu.append(123).bu.append("hello").bu.append(6.66).bu.append("你好");
         */
        bu.append(123);
        bu.append("hello");
        bu.append(6.66);
        bu.append("你好");
        System.out.println(bu);


    }
}

运行结果
话说StringBuilder【小白学Java-学习笔记15】
2.toString()

package stringBuilder.demo1;

/**
 * StringBuilder和String可以相互转换
 *  String --> StringBuilder:可以使用StringBuilder的构造方法StringBuilder(String str)
 *  StringBuilder --> String:可以使用StringBuilder的toString()方法
 */
public class Demo03StringBuilder {
    public static void main(String[] args) {
        //String --> StringBuilder
        String str = "hello";
        System.out.println("str:"+str);
        //利用StringBuilder的构造方法将String对象变成StringBuilder对象
        StringBuilder bu1 = new StringBuilder(str);
        //往StringBuilder对象里面添加数据world
        bu1.append("world");
        System.out.println("bu1:"+bu1);
        System.out.println("============");
        //StringBuilder --> String
        String s = bu1.toString();//利用StringBuilder的toString方法将StringBuilder对象变成String对象
        System.out.println("s:"+s);
    }
}

运行结果
话说StringBuilder【小白学Java-学习笔记15】

上一篇:TreeMap原理实现及常用方法


下一篇:TreeMap源码分析,看了都说好