您的位置:首页 > 博客中心 > 互联网 >

字符串拼接 | StringBuffer & StringBuilder

时间:2022-05-11 10:12

StringBuffer的使用

  • 字符串创建之后是不能改变的,使用加号进行字符串拼接,不是在原来字符串的基础上拼接,是复制原来字符串和新的字符串进行拼接,组成一个新的字符串,这样字符串常量池就会多出很多字符串。
  • 使用StringBuffer进行拼接,底层就是调用数组进行拼接的。在原来字符串上拼接,不会多出很多字符串。

实例:

public class StringBufferTest {
    public static void main(String[] args) {
        StringBuffer stringBuffer=new StringBuffer();

        stringBuffer.append(12);
        stringBuffer.append("abc");
        stringBuffer.append(true);

        System.out.println(stringBuffer);
    }
}

StringBuffer的优化

  • 在创建StringBuffer的时候尽可能给定一个初始化容量,最好减少底层数组的扩容次数。

实例:

public class StringBufferTest {
    public static void main(String[] args) {
        //初始化容量是16。
        StringBuffer stringBuffer=new StringBuffer();
        
        //默认的初始容量是16,现在自己设定初始容量为100
        StringBuffer stringBuffer1=new StringBuffer(100);
    }
}

StringBuilder的使用

  • StringBuilder的使用和String相似,也是用来进行字符串拼接的。
  • 两者的区别:StringBuffer中的方法有synchronized关键字修饰,StringBuffer中的方法没有。StringBuffer是线程安全的,StringBuilder是非线程安全的。

本类排行

今日推荐

热门手游