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 ‘+’ 进行优化。
复杂的场景大家可以测试下。所以对一些简单拼接 可以大胆的 +++

你可能感兴趣的:(java)