page contents

String, StringBuffer, StringBuilder的区别是什么?String为什么是不可变的?

轩辕小不懂 发布于 2021-08-27 09:32
阅读 509
收藏 0
分类:开发环境
  • ios
  • 1787
    Nen
    Nen
    - 程序员

    1、String是字符串常量,StringBuffer和StringBuilder都是字符串变量。后两者的字符内容可变,而前者创建后内容不可变。

    2、String不可变是因为在JDK中String类被声明为一个final类。

    3、StringBuffer是线程安全的,而StringBuilder是非线程安全的。

    补充说明:线程安全会带来额外的系统开销,所以StringBuilder的效率比StringBuffer高。如果对系统中的线程是否安全很掌握,可用StringBuffer,在线程不安全处加上关键字Synchronize。

    请先 登录 后评论