String , StringBuffer , StringBuilder有什么区别 深度解析 个人总结

性能方面: StringBuilder>StringBuffer>String(for)循环里面字符串拼接

线程安全:StringBuilder(非线程安全,速度快) StringBuffer (线程安全,速度慢)

如何选择:方法内无线程安全问题,选择StringBuilder 有线程安全问题,使用StringBuffer

 

如果使用:

当连接几个String 时候,使用String.concat

当连接较多字符串  依据线程安全需求,选择StringBuffer或StringBuilder

当使用较多,且无法确认具体连接字符串次数与数目时候,选择StringBuilder 因为相对而言,单线程StringBuilder速度快

 

原因解读:

1.      String 是最终变量  每修改String 会重新使用新的内存,原有内存会依据JVM清除,消耗内存大

2.      Stringbuilder 是单线程操作字符串缓冲区,每次修改 内存地址不会增加消耗量,即为在原有基础上,增加栈长度

3.      Stringbuffer 是多线程操作字符串缓冲区下操作大量数据,但是多线程效率没有单线程速度快

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值