美文网首页
StringBuffer和StringBuilder

StringBuffer和StringBuilder

作者: 是归人不是过客 | 来源:发表于2020-09-18 10:00 被阅读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);
        }
    }
    

    相关文章

      网友评论

          本文标题:StringBuffer和StringBuilder

          本文链接:https://www.haomeiwen.com/subject/qqidyktx.html