String + 简单模式下的优化

简答+拼接优化

每次用”+”拼接,都会生成一个新的String。特别在循环拼接字符串的场景下,性能损失是极其严重的:

编译器会不会帮我们进行优化呢。

简单模式

编译器 :IDEA
JDK 版本 :1.8

源代码// 节选了部分代码

   String ss = "191823617";
        int cellid = Integer.parseInt(ss);
        System.out.println(cellid / 256);
        System.out.println(cellid % 256);
         int endid = cellid / 256;
         int lcrid = cellid % 256;
        String cgi="460-00-"+endid+"-"+lcrid;

对生成的class文件进行反编译

    String ss = "191823617";
        int cellid = Integer.parseInt(ss);
        System.out.println(cellid / 256);
        System.out.println(cellid % 256);
        int endid = cellid / 256;
        int lcrid = cellid % 256;
        (new StringBuilder()).append("460-00-").append(endid).append("-").append(lcrid).toString();

可以看到编译优化阶段,会对String ‘+’ 进行优化。
复杂的场景大家可以测试下。所以对一些简单拼接 可以大胆的 +++

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值