首页 > 其他 > 详细

为什么字符串用+号拼接对象,会得到字符串呢

时间:2019-12-28 17:48:00      阅读:105      评论:0      收藏:0      [点我收藏+]

+号作为java中为数不多的重载运算符,提供了字符串拼接的功能。

java -c 生成的jvm字节码可以看出来。编译器其实也是为我们手动new Stringbuilder来进行字符串拼接。

那么问题来了。为什么有人告诉我,使用+号拼接字符串会产生一大堆无用的对象呢?他们是在开玩笑吗?编译器不是会为我们进行优化吗?

其实不是这样的。

对于一般的字符串拼接是没有问题的,只会产生一个Stringbuider对象。但是如果你拼接对象的行为在一个循环内,也就是说toString的形式是在一个循环内产生的,

java -c 可以看到。+号所产生的操作,会在循环内不产生N个Stringbuider对象。这是我们需要优化的地方。

也就是我,当拼接字符串的操作发生在循环体内的话,请使用Stringbuider而不是+号。

为什么字符串用+号拼接对象,会得到字符串呢

原文:https://www.cnblogs.com/munan56/p/12111990.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!