StringBuffer和StringBuilder

2020-09-18  本文已影响0人  是归人不是过客

1、StringBuffer和StringBuilder是什么?

是字符串缓冲区

2、工作原理

预先在内存中申请一块空间,以容纳字符序列,如果这块空间够用,则自动进行扩容,以容纳更多

的字符序列。

3、StringBuffer,StringBuilder和String最大区别?

String是不可变的字符序列,存储字符串常量池中

StringBuffer底层是一个char数组,但是该char数组是可变的,并且可以自动扩容。

4、StringBuffer和StringBuilder的默认初始化容量是16

5、如何优化StringBuffer和StringBuilder妮?

最好在创建StringBuffer之前,预测StringBuffer的存储字符数量,然后再创建StringBuffer的时候采

用初始化容量的方式创建StringBuffer,为了减少底层数组的拷贝。提高效率。

6、StringBuffer和StringBuilder的区别

StringBuffer是线程安全的(可以在多线程的环境下)

StringBuilder是非线程安全的(在多线程环境下可能出现问题)
举栗子·:

public class Test{

    public static void main(String[] args) {
        // 创建字符串缓冲区
        StringBuffer sb = new StringBuffer(); // 16
        
        //可以向StringBuffer中追加字符串
        String[] ins = {"体育","音乐","睡觉","美食"};
        
        // 推荐字符串频繁拼接使用StringBuffer或StringBuilder
        for(int i = 0;i < ins.length;i++) {
            if(i == ins.length - 1) {
                sb.append(ins[i]);
            }else {
                sb.append(ins[i]);
                sb.append(",");
            }
        }
        System.out.println(sb);
    }
}
上一篇下一篇

猜你喜欢

热点阅读