关于String常量池的理解

首先援引部分博客:

http://www.cnblogs.com/kkgreen/archive/2011/08/24/2151450.html

上述文章说明String常量池的简单理解;

https://blog.csdn.net/guohan_solft/article/details/73655687

上面文章说明String常量池优化问题

更深入讨论:往往我们再说String常量池的时候我们往往倾向于说常量池是做了优化的,字符串拼接会是效率变高;当时我也是没有仔细思考,现在重新整理下思路;

首先 对于一部分来说。使用+进行拼接的时候,比如a=b+c;里面的a,b,c都是不同的对象,进行拼接操作之后会长生新的String对象,因而产生了一种理解,是不是String+拼接是产生新的String对象并且使用方法拼接,于是:


这种时间消耗是1.11s 

but +拼接所用时间是:

时间3.2s 时间对不上,而且明显不如之前的猜测来的时间比较快,那么+到底是怎么操作的呢?

大佬给出的骚操作:

这也证明了两种方式耗时是一样的,本来以为这问题到此终止 然而早上测试发现:

这就有点说不通;其实这问题并不是什么大问题。只是面试中会问到一些,要是我同学不问我,我也是睁眼瞎;

该问题的实际应用比如说淘宝超长订单号如何加速(生成问题),涉及到频繁改动的字符串优化问题如用户名更改等(更新问题),普通小项目其实不用注意

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值