StringBuilder和StringBuffer的区别(看源码好记忆)

打开StringBuffer类的代码,可以看到注释:StringBuffer是jdk1.0就推出的。

看代码,因为StringBuffer继承了类AbstractStringBuilder,
AbstractStringBuilder底层和string一样,用的char数组来表示字符串,不过没有用修饰符 private final 
所以,这个字符串是可被访问,并可变的。

StringBuffer类中,修饰字符串的操作方法,使用了synchronized  关键字

 从而保证线程安全的,但因此,因为每次操作字符串时,都会加锁,所以性能比较低。

因此,JDK1.5推出了StringBuilder。

StringBuilder也继承了类AbstractStringBuilder,所以他的字符串也是可被访问,并可变的

StringBuilder 的操作字符串的方法里,没有加锁,所以就无法保证线程安全,但是相对更高效一些。

补充:与

StringBuffer是一个字符串的缓冲区,相当于一个容器,容器中可以装字符串,并且能够对这些字符串进行append、insert、replace、reserve,这样的操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值