Java中StringBuffer和StringBuilder的区别

StringBuilderStringBuffer这两者都是可变的字符序列

参考文档
在这里插入图片描述
在这里插入图片描述
尽管如此。做题的时候,还是搞不清使用场景是什么,害
我们先来看源码:

  • StringBuilder
    在这里插入图片描述
  • StringBuffer
    在这里插入图片描述

我们看上面的源码,都会发现它继承了一个抽象类AbstractStringBuilder

  • 1、线程安全的角度
    StringBuffer:线程安全
    StringBuffer:线程安全:线程不安全
    为什么这么说呢,同样我们查看源码,StringBuffer类里面的方法都使用 synchronized关键字进行修饰,(关于 synchronized具体作用,参考以下链接(https://blog.csdn.net/qq_44723296/article/details/105412662)
    在这里插入图片描述

  • 2、效率
    我们知道StringBuffer是线程安全的,那么它的方法都是同步的,相对于StringBuilder这个类来说,加锁和没加锁相比,效率要低一点。

    单线程情况下,我们使用StringBuilder
    多线程情况下,我们使用StringBuffer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值