String, StringBuffer和StringBuilder的区别

String

  • String类是一个不可变类, 创建String对象后, 该对象中的字符串是不可改变的
  • 由于是不可改变的, 所以当一个字符串经常被修改时, 最好使用StringBuffer或者StringBuilder实现

StringBuffer

  • StringBuffer类型的字符串是可变的
  • 线程安全, 因为StringBuffer中的方法大都采用了synchronized关键字进行修饰
  • 在单线程中, StringBuffer每次需要判断锁, 所以效率相对较低
  • 多线程环境下涉及到共享变量的插入和删除操作, 首选StringBuffer

StringBuilder

  • StringBuilder类型的字符串是可变的
  • 线程不安全
  • 在单线程中, StringBuilder相较于StringBuffer效率更快
  • 非多线程操作并且有大量的字符串拼接, 插入, 删除操作, 首选StringBuilder

执行速度: StringBuilder > StringBuffer > String
在频繁进行字符串运算(如删除, 替换, 拼接等), 可以使用StringBuilder或者StringBuffer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值