当心字符串的性能问题(51)

本文对比了使用+操作符连接字符串与使用StringBuilder进行字符串拼接的性能差异。指出在Java中,由于字符串不可变性,频繁使用+操作符会导致效率低下。推荐使用StringBuilder或预先分配长度以提高性能。

字符串连接操作符 +

  • 便利连接方法
  • 不适合运用在大规模的场景中
  • 当两个字符串被连接在一起时,两个字符串都将被拷贝(这是由于字符串是final 类型的)

如果项目中使用数量巨大,请使用StringBuilder 代替 String

  • jdk 1.5 以后已经使用StringBuilder 代替了过时的StringBuffer

eafeaa1da332614c4b152a7216c8639191c.jpg

  • 下述方法比上述快85倍

7b1de186d9cf05b302bcc735c4e82caec90.jpg

  • 而且使用了预先分配长度,使得可以容纳全部
  • 默认分配50,需要再次分配(仍然比String 快得多)

总结:

  • 不要使用 str1+str2...
  • 使用StringBuilder 的 append 方法
  • 或者使用字符数组
  • 或者每次仅处理一个字符串,而不是将他们组合起来

 

转载于:https://my.oschina.net/u/3847203/blog/1923671

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值