String、StringBuffer、StringBuilder

一、相同点

String、StringBuffer、StringBuilder都用来封装字符串,并提供一系列方法来改进字符串。

二、不同点

2.1 可变与不可变

String是不可变类,一旦一个String对象被创建,该对象中的字符串序列不可改变,直至对象被销毁。

StringBuffer、StringBuilder是可变类,常用方法有append()、insert()、reverse()、setCharAt()、setLength()等。生成最终想要的字符串后若不再更改,可调用它的toString()方法将该对象转换成一个String对象。

 

2.2 线程安全与不安全

StringBuilder是线程不安全的,StringBuffer是线程安全的,String也是线程安全的。

StringBuffer中的很多方法可以带有synchronized关键字来保证线程安全,而StringBuilder的方法则不行。所以如果要进行的操作是多线程的,最好使用StringBuffer,而在单线程情况下,优先使用StringBuilder,因为它速度更快。

 

2.3 运行速度

StringBuilder > StringBuffer >  String 

 

三、适用情况

操作字符串少时,优先String,最熟悉的就是这个了

操作字符串数据量大时,考虑到String速度较慢,优先考虑StringBuilder和StringBuffer,单线程或线程安全时优先使用StringBuilder,线程不安全时优先使用StringBuffer来保证线程安全。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值