「阿里巴巴」面试官:为啥不提倡字符串拼接?看阿里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开发手册泰山版】
推荐阅读
- #程序员#?8年经验程序员跳槽,2个月面试腾讯百度京东等70家公司,总结出4个共同点
- 小城时光说资讯|为啥大家还是喜欢淘宝?原因让刘强东无奈,京东服务好、配送又快
- 『阿里巴巴』华为阿里“强强联手”,直接反将美国一军,美媒“踢到铁板了”
- 万州微视界|孙正义留下一个教训:不是所有公司都叫阿里巴巴孙正义渡劫不是所有公司都叫阿里巴巴阿里巴巴的辉煌难以复制,70亿打水漂后
- [阿里巴巴]特朗普宣布新规,马云1夜损失170亿美金后,狂砸2000亿支持华为!
- 来个好店|阿里巴巴与江西签署六项合作协议
- CEO在线|什么仇什么怨?为啥这些企业在群嘲企鹅……
- 「宇航员」我国第一位女宇航员刘洋,为啥回国后不再露面,她现在生活的如何
- 甜萌影视|为啥成了全网娱乐事件?腾讯自己引导的,腾讯PK老干妈
- 饿了么:2年前,那个将饿了么665亿卖给阿里巴巴的85后小伙,现状如何?