05_StringBuffer和StringBuilder类

StringBuffer和StringBuilder

String类的缺点:

String 是一个不可变的数据类型,每每拼接都会产生一个新的字符串,那么内存迟早会被这些拼接的字符串塞满。

String类和StringBuilder和StringBuffer类的区别:

StringBuilder和StringBuffer:可变的字符串,不产生新对象,比较省内存,当进行大量的字符串拼接时建议使用StringBuffer和StringBuilder,但它们两个一些方法的实现几乎跟String一样。

StringBuffer和StringBuilder类:

【相似点】

两者用法一模一样,可以认为是一个类

【区别】

  1. StringBuffer线程安全,StringBuilder非线程安全。

  2. StringBuilder相比于StringBuffer有速度优势,多数情况下建议使用StringBuilder类,但当被要求线程安全时必须使用StringBuilder类

StringBuffer和StringBuilder 转成String类

StringBuilder sb = new StringBuilder("猫喜欢吃鱼");
String s = sb.toString();		

【参考代码】

package String;

public class TestStringBuilder {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();// 一个空的字符串""

        StringBuilder sb2 = new StringBuilder("猫喜欢吃鱼");
        System.out.println(sb2);// 猫喜欢吃鱼

        sb2.append(",狗也喜欢吃鱼");
        System.out.println(sb2);// 追加  猫喜欢吃鱼,狗也喜欢吃鱼

        sb2.insert(1,"哈哈哈");
        System.out.println(sb2); //猫哈哈哈喜欢吃鱼,狗也喜欢吃鱼

        // 上述的操作huan'c

        // 把StringBuilder转化成String
        String s = sb2.toString();
        System.out.println(s); //猫哈哈哈喜欢吃鱼,狗也喜欢吃鱼

        // 上述操作都可以将StringBuilder换成StringBuffer,结果一样

    }
}

posted @ 2021-08-13 22:23  时间最考验人  阅读(65)  评论(0编辑  收藏  举报