将对象转换为字符串(效率)
把一个基本数据类型转为字符串,基本数据类型.toString()是最快的方式、String.valueOf(数据)次之、数据+””最慢
把一个基本数据类型转为一般有三种方式,我有一个Integer型数据i,可以使用i.toString()、String.valueOf(i)、i+””三种方式,三种方式的效率如何,看一个测试
1 private static void testFun() { 2 3 int loopTime = 50000; 4 //case1:String.valueOf() 5 Integer i = 0; long startTime = System.currentTimeMillis(); 6 for (int j = 0; j < loopTime; j++) 7 { 8 String str = String.valueOf(i); 9 } 10 System.out.println("String.valueOf():" + (System.currentTimeMillis() - startTime) + "ms"); 11 //case2:obj.toString() 12 startTime = System.currentTimeMillis(); 13 for (int j = 0; j < loopTime; j++) 14 { 15 String str = i.toString(); 16 } 17 System.out.println("Integer.toString():" + (System.currentTimeMillis() - startTime) + "ms"); 18 //case3:obj+"" 19 startTime = System.currentTimeMillis(); for (int j = 0; j < loopTime; j++) 20 { 21 String str = i + ""; 22 } 23 System.out.println("i + \"\":" + (System.currentTimeMillis() - startTime) + "ms"); 24 }
运行结果:
String.valueOf():19ms
Integer.toString():16ms
i + "":33ms
所以以后遇到把一个基本数据类型转为String的时候,优先考虑使用toString()方法。
至于为什么,很简单:
1、String.valueOf()方法底层调用了Integer.toString()方法,但是会在调用前做空判断
2、Integer.toString()方法就不说了,直接调用了
3、i + “”底层使用了StringBuilder实现,先用append方法拼接,再用toString()方法获取字符串
三者对比下来,明显是2最快、1次之、3最慢
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了