每日一问-String, StringBuffer与StringBuilder区别

三者都是用于处理字符串,主要区别在于可变性、线程安全和性能

1、可变性:

String类被final修饰,是不可变的,进行修改时,会创建新的对象

StringBuffer和StringBuilder是可变的,需要修改时,会直接在原对象上修改

2、线程安全

String和StringBuffer是线程安全的,前者因为其不可变性,后者所有方法被synchronized修饰

StringBuilder是非线程安全的

3、性能

String频繁修改时性能较低,因其会不断创建新的对象

StringBuffer由于synchronized修饰后的同步机制,性能比StringBuild较低

StringBuilder在单线程情况下性能较高

4、使用场景

String 适合少量字符串或者不考虑线程安全的情况下使用(配置信息、常量)

StringBuffer适合多线程下大量字符串操作(并发日志处理)

StringBuilder适合单线程下大量字符串操作(循环拼接,动态sql)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值