关于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 时间对不上,而且明显不如之前的猜测来的时间比较快,那么+到底是怎么操作的呢?

大佬给出的骚操作:

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

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

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

猜你喜欢

转载自blog.csdn.net/WK_SDU/article/details/80717469
今日推荐