zoukankan      html  css  js  c++  java
  • Java--StringBuffer和StringBuilder

    1.StringBuffer和StringBuilder是什么?

      是一个字符串缓冲区

    2.工作原理

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

    3.StringBuffer,StringBuilder和String的区别是什么?

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

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

    4.StringBuffer和StringBuilder的默认初始容量是16(16个字符,32字节)

    5.StringBuffer和StringBuilder如何进行优化呢?

      最好在创建StringBuffer之前,预测StringBuffer的存储字符数量,然后再创建StringBuffer的时候采用指定初始化容量的方式创建StringBuffer。

      因为数组在扩容的时候,采用的机制是创建另一个更大的数组,然后把初始数组复制进去。提前指定初始容量可以减少底层数组的拷贝,提高效率

    7.当字符串频繁拼接时推荐使用StringBuffer和StringBuilder。可以使用append方法。

    8.StringBuffer和StringBuilder和有什么区别?

      StringBuffer是线程安全的。(可以在多线程的环境下使用不会出现问题)

      StringBuilder是非线程安全的。(在多线程环境下使用可能出现问题)

  • 相关阅读:
    ArcSDE安装报 “contains an incorrect path”
    vs对话框"发生生成错误,是否继续并运行上次的成功生成"的设置
    修改XML节点名称
    git 常用
    mysql 执行sql流程
    DocumentBuilderFactory.newInstance() 异常解决
    samba 配置
    ajax jquery
    c++ map
    javacc jjtree 写法 以及 jj写法 基本语法 以及应用
  • 原文地址:https://www.cnblogs.com/RosemaryJie/p/13199017.html
Copyright © 2011-2022 走看看