Java把整型转换为字符串,哪种方法快一点?

方法一:
String str = "" + 1;
方法二:
String str = String.valueof(1);

经过测试,无论整型数有多大,方法二的运行时间总比方法一的大一个数量级。
为什么方法一快呢?

全部评论
你去看一下源码,String的ValueOf()方法实际上底调用了Integer的toString(),这个方法是通过你传进来的int值来计算一个一个索引值,这个索引值是在Integer类里初始化的几个char数组,通过索引找到数组里对应的字符然后再包装字符数组再返回回来才变成字符串,最后你看到的str的值才是"1",而方法一就不一样了,编译后的class文件里就变成"" 1被处理变为"1",表面上看,是方法二调用了很多方法,有很多操作,不过我猜测是因为方法一赋值是从字符串常量池拿到的"1",而方法二是构造了一个字符串对象赋值给str,主要的时间消耗差距这么大的主要原因还是因为构造对象的过程消耗很大
点赞 回复 分享
发布于 2019-04-02 21:10
是不是把机器码反编译一下就知道了
点赞 回复 分享
发布于 2019-04-02 20:28

相关推荐

不愿透露姓名的神秘牛友
昨天 11:24
大家还是用ai改吧,我心疼得要死,就当花钱买教训吧,人家直接拿完钱就跑路了
程序员小白条:简历修改700....神奇,又不是帮你面试,咋的,简历修改从双非变92了还是没实习变成有大厂实习了
点赞 评论 收藏
分享
05-29 22:11
门头沟学院 Java
Elastic90:抛开学历造假不谈,这公司的招聘需求也挺怪的,Java开发还要求你有图文识别、移动端开发和c++的经验,有点逆天了。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
07-09 15:55
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务