编程语言
首页 > 编程语言> > 话说StringBuilder【小白学Java-学习笔记15】

话说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);


    }
}

运行结果
在这里插入图片描述
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);
    }
}

运行结果
在这里插入图片描述

标签:Java,String,StringBuilder,System,bu,小白学,println,append
来源: https://blog.csdn.net/weixin_43742901/article/details/113851075