JAVA之String、StringBuffer和StringBuilder的区别

 

一.String

(1)String对象一旦创建不可更改,源代码中用于存储字符串的数组使用了final修饰,原因java开发中很大程度上字符串一经创建不需要修改。

(2)String适合于少量字符串操作的,字符串每一次操作都会创建一个新的String对象,很费内春和时间

二.StringBuffer

(1)线程安全,方法均由synchronized修饰,可以不需要额外的同步用于多线程中。

(2)可用append,insert方法进行字符串的拼接

(3)适用于多线程下在字符缓冲区进行大量操作的情况

三.StringBuilder

(1)非线程安全,运行于多线程中需要使用同步处理,单线程中使用StringBuilder比较好

(2)可用append,insert方法进行字符串的拼接

(3)适用于单线程下在字符缓冲区进行大量操作的情况

四.联系

(1)三者都是final修饰的类,不能被继承,主要是从性能和安全性上考虑,因为这几个类都是经常被使用着,且考虑到防止其中的参数被参数修改影响到其他的应用。

(2)String实现了三个接口:Serializable、Comparable<String>、CarSequence,StringBuilder只实现了两个接口Serializable、CharSequence,相比之下String的实例可以通过compareTo方法进行比较,其他两个不可以。

注意:使用StringBuffer和StringBuilder时最好选择合适的初始化空间大小,默认是16,StringBuffe每次空间不够,便会重新申请一个空间,将原来的内容复制到新的数组中,比较费时。

欢迎关注公众号:

如果感觉文章内容对您有用,记得点赞吆!

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老布丁~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值