「阿里巴巴」面试官:为啥不提倡字符串拼接?看阿里java开发手册怎么说


「阿里巴巴」面试官:为啥不提倡字符串拼接?看阿里java开发手册怎么说
文章图片
「阿里巴巴」面试官:为啥不提倡字符串拼接?看阿里java开发手册怎么说
文章图片

阿里规约【「阿里巴巴」面试官:为啥不提倡字符串拼接?看阿里java开发手册怎么说】先来看阿里java开发手册的第22条 , 循环体内 , 字符串的连接方式 , 使用 StringBuilder 的 append 方法进行扩展 。
说明:下例中 , 反编译出的字节码文件显示每次循环都会 new 出一个 StringBuilder 对象 , 然后进行 append
操作 , 最后通过 toString 方法返回 String 对象 , 造成内存资源浪费 。
反编译我么先写一个类测试一下是否是这样的呢?眼见为实 , 耳听为虚 , Let`s go 。
反编译javap  -c Test.class, 接下来看结果 , 从反编译的结果看循环体内每拼接一次就会去new一个StringBuilder 。
那么 , m2方法的字节码呢?我们可以看到是直接调用的append方法 , 而没有每循环一次new一个StringBuilder对象了 。
总结1、字符串拼接 , +号和StringBuilder是相等的 , 但是在循环体内使用 StringBuilder 的 append 方法效率更优 , 尤其是数据量很大的情况下 。
2、使用字节码的方式可以很好查看代码底层的执行 , 从而可以看出哪些实现效率高 , 哪些实现效率低 。 可以更好的对我们的代码做优化 。 让程序执行效率更高 。
关注并私信我获取最新【阿里java开发手册泰山版】


    推荐阅读