String + 简单模式下的优化

本文探讨了Java中使用+操作符进行字符串拼接时的性能问题,并通过具体示例展示了JDK1.8环境下编译器如何自动优化这种操作,避免性能损耗。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简答+拼接优化

每次用”+”拼接,都会生成一个新的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 ‘+’ 进行优化。
复杂的场景大家可以测试下。所以对一些简单拼接 可以大胆的 +++

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值