String + 简单模式下的优化
简答+拼接优化每次用”+”拼接,都会生成一个新的String。特别在循环拼接字符串的场景下,性能损失是极其严重的:编译器会不会帮我们进行优化呢。简单模式编译器 :IDEAJDK 版本 :1.8源代码// 节选了部分代码String ss = "191823617";int cellid = Integer.parseInt(s...
·
简答+拼接优化
每次用”+”拼接,都会生成一个新的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 ‘+’ 进行优化。
复杂的场景大家可以测试下。所以对一些简单拼接 可以大胆的 +++
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献2条内容
所有评论(0)