String Builder的原理和方法

字符串是一个常量,它们的值在被创建不可改变。

底层是被final的byte数组,不能改变

“a"+"b"+"c"="ab"+"c"="abc"

三个内存  两个内存  一个内存  占用空间 

String Builder 类是一个字符串缓冲区,可以提高字符串效率,长度可以变化,他的底层也是个数组但没有被final修饰,可以改变长度。

byte【】 value  =new byte【16】;

“a"+"b"+"c"="abc"

直接变成一个内存空间节省内存,

String BUilder类始终是一个数组,占用内存低,速度快,如果长度不够还会自动扩容。

构造方法:

StringBuilder()
          构造一个不带任何字符的字符串生成器,其初始容量为 16 个字符。

StringBuilder(String str)
          构造一个字符串生成器,并初始化为指定的字符串内容

 append(.... s) 添加任意类型的字符串 返回当前对象本身

 

public class FuXi2 {
    public static void main(String[] args) {
        StringBuilder n = new StringBuilder();
        System.out.println(n);
        StringBuilder n1 = new StringBuilder("String");//指定字符串初始化内容
        System.out.println(n1);

        n1.append(600);//添加任意类型的数据返回此数据转化为字符串    注意:使用append方法无需设置返回值。
        System.out.println(n1);//直接打印即可

        //链式编程:方法返回值是一个对象可以继续调用方法
        n1.append(50).append(60).append("a").append(true).append(5.00);//如此
    }
}

tostring() 将当前StringBuilder对象转化为String对象

StringBuilder可以相互转化

String转化为字符串 调用Stringbuilder类的构造方法

StringBuilder类转化为String   调用Stringbuilder类中的toString方法

public class FuXi2 {
    public static void main(String[] args) {
        StringBuilder n1 = new StringBuilder("String");//指定字符串初始化内容
        StringBuilder n = n1.append(50);
        System.out.println(n1);
        System.out.println(n1==n);//不重写equals默认比较的是地址值

        n1.append(600);//添加任意类型的数据返回此数据转化为字符串    注意:使用append方法无需设置返回值。
        System.out.println(n1);//直接打印即可

        //链式编程:方法返回值是一个对象可以继续调用方法
        n1.append(50).append(60).append("a").append(true).append(5.00);//如此








        System.out.println("===================================================================");
        String s1 ="Hello";
        StringBuilder s = new StringBuilder(s1);//传递s1自己定义的字符串内容
        s.append("World");//添加String类型的字符串进入数组
        System.out.println(s);

        String s2 = s.toString();//使StringBuilder对象转化为String对象
        System.out.println(s2);
    }
}

你可能感兴趣的:(String Builder的原理和方法)