String,StringBuffer,StringBuilder之间的区别

String:final类,是不可改变的对象,一旦创建,它的值不可以改变,因此在修改它的值的时候,相当于创建了一个新的对象,然后指针指向这个对象,相当于并不是改变值,而是改变赋值地址。在对象相加过程中会生成中间量,对系统性能造成影响。

String是不变量
直接相加,每加一次就会产生一个中间过程对象
"A"+"B"+"C"+"D"
="AB"+"C"+"D"
="ABC"+"D"
="ABCD"
"AB","ABC"就是中间量
 

StringBuffer:一个类似于String的字符串缓冲区,使用append()方法,可直接在原对象上进行操作,并不生成新的对象,线程安全。toString()方法可以转换成String。在字符串经常改变的情况下,建议使用。效率比String快很多。


StringBuilder:一个可变的字符序列是5.0新增的。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。两者的方法基本相同。线程不安全,适合单线程使用。效率比StringBuffer高。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值