为了账号安全,请及时绑定邮箱和手机立即绑定

String、StringBuffer和StringBuilder

String、StringBuffer和StringBuilder

慕莱坞森 2019-08-03 12:03:34
String、StringBuffer和StringBuilder请告诉我要比较的实时情况String, StringBuffer,和StringBuilder?
查看完整描述

3 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

易变性差异:

String不变,如果您试图更改它们的值,则会创建另一个对象,而StringBufferStringBuilder可变这样他们才能改变自己的价值观。

螺纹-安全差别:

.之间的区别StringBufferStringBuilder那是StringBuffer线程安全。因此,当应用程序只需要在单个线程中运行时,最好使用StringBuilderStringBuilderStringBuffer.

情况:

  • 如果您的字符串不会更改,请使用String类,因为

    String

    对象是不可变的。
  • 如果您的字符串可以更改(例如:字符串构造中的大量逻辑和操作),并且只能从单个线程访问,则使用

    StringBuilder

    就够好了。
  • 如果您的字符串可以更改,并且将从多个线程访问,请使用

    StringBuffer

    因为

    StringBuffer

    是同步的,所以你有线程安全。


查看完整回答
反对 回复 2019-08-05
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

  • 你用

    String

    在合适的不可变结构时;从

    String

    无论是在CPU时间还是在内存中,都可能带来不可接受的性能损失(获取子字符串是CPU效率的原因,因为数据没有被复制,但这意味着可能会有更多的数据仍然被分配)。
  • 你用

    StringBuilder

    当您需要创建一个可变字符序列时,通常需要将多个字符序列连接在一起。
  • 你用

    StringBuffer

    在同样的情况下,你会使用

    StringBuilder

    ,但是当对基础字符串的更改必须同步时(因为有几个线程正在读取/修改字符串缓冲区)。

见示例这里.




查看完整回答
反对 回复 2019-08-05
  • 3 回答
  • 0 关注
  • 268 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号