欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Interview ➣ ➣String StringBuffer 和 StringBuilder 的区别

程序员文章站 2022-06-19 08:53:32
...

String StringBuffer 和 StringBuilder 的区别


String是只读字符串,所引用的字符串不能被改变,一经定义,无法再增删改。

String 定义的字符串保存在常量池里面,进行+操作时不能直接在原有基础上拼接。
每次+操作 : 隐式在堆上new了一个跟原字符串相同的StringBuilder对象,再调用append方法 拼接+后面的字符。

区别:

  1. String是只读字符串,所引用的字符串不能被改变,Stringbuffer和Stringbuilder定义的可以通过各种方法来达到简单的增删改;

  2. String和Stringbuilder在单线程环境下使用;

  3. StringBuffer在多线程环境下使用,可以保证线程同步;

Stringbuilder 和StringBuffer 实现方法类似,均表示可变字符序列,不过StringBuffer
用synchronized关键字修饰(保证线程同步)

运行速度

  1. Stringbuilder 最快,不需要考虑线程同步;
  2. StringBuffer次之;
  3. String最慢,因为每次都要重新开辟内存,产生很多匿名对象,影响系统性能。
相关标签: Interview

上一篇: 剑指-02

下一篇: C语言函数指针