String ,StringBuffer和StringBuilder的区别

本文探讨了字符串常量池复用、线程安全性和性能优劣的对比:String的不可变性,StringBuilder的高效连接,及StringBuffer的线程同步。适合操作场景和性能优化策略的选择指南。


String :固定长度的字符串
由char和数组形成
有不可变性(例子: String a; a="111";)
多线程安全
有利于常量池中的数据的复用
连接效率低
适合操作少量数据和不操作

StringBuilder:变长字符串
由char和数组形成
可变
线程不安全
连接效率和StringBuffer一样高于String 
适合操作大量数据,但是线程不安全

StringBuffer:变长字符串
由char 和数组组成
可变
线程安全
适用于考虑线程安全时使用
性能不如StringBuilder

StringBuffer和StringBuilder的默认初始容量是16,
可以提前预估好字符串的长度,进一步减少扩容带来的额外开销

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值