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

相关推荐

牛客101244697号:这个衣服和发型不去投偶像练习生?
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务