探讨 清析两种字符串拼接的效率差异的原理

所以本质区别就是String进行拼接是必须走StringBuilder(或StringBuffer)这条路的,而每次拼接都要创建一个StringBuilder对象,一个String对象,每次拼接需要创建两个对象进行一万次拼接需要创建两万个对象,而大多时候可能过程中创建的StringBuilder对象和String对象都不会使用,即会被清理。(String常量池中对象的创建暂不谈,因为解决同一拼接需求的情况下两种拼接方式需要创建的StringTable中的对象数量相同,别说不同拼接需求嘞,这是个伪命题,别管它)而StringBuilder拼接,只需要创建一个StringBuilder对象,就可以进行一万次拼接,这种时候用StringBuilder是用String直接拼接的效率的n倍,即1(StringBuiledr):n(String直接拼接),所以如果只要n次拼接后最终结果,StringBuilder是最好的选择,如果需要每次拼接的结果,使用String直接拼接和StringBuilder进行拼接知识一个隐式创建了2乘n个对象,一个创建了1(StringBuilder)+n(String)个对象,所以还是StringBuiledr效率高,高一倍,即用时1(StringBuilder):2(String直接拼接),StringBuilder还是最好的选择。

所以以后遇到拼接就直接使用StringBuilder,是效率高,使用内存最小的方式了

(StringBuffer没讲暂不知)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值