测试int部类转String类型的两种方法的执行效率
测试int类型转String类型的两种方法的执行效率
在Java中Int类型转String的两种方法:Integer.toString和 String.valueOf,这两种方法都能实现,以前也从来没有考虑效率问题,今天由于项目上需要大量的转换,考虑到效率问题,于是做了下面测试:
package hualu.ehualu.pmis; /** * 测试int类型转String类型的两种方法的执行效率 * @author chenqz5633@163.com * */ public class TestInt2String { public static void main(String[] args) { // 第一个方法比第二个方法用时长的次数 int firstMethodOld = 0; // 此循环加大循环次数,减少偶然因素带来的影响 for (int j = 0; j < 10; j++) { // 方法1-------------------------------- long time1 = System.currentTimeMillis(); String number1 = null; // 此模块模拟你可能有多个int变量需要转化成String for (int i = 0; i < 10000000; i++) { number1 = Integer.toString(186); } //计算从调用开始到结束的时间差 long returnTime1 = (System.currentTimeMillis() - time1); System.out.println("Integer.toString方法用时:" + returnTime1 + "毫秒,值为:" + number1); // 方法1----end--------------------------------------- // 方法2------------------------------------------------- long time2 = System.currentTimeMillis(); String number2 = null; // 此模块模拟你可能有多个int变量需要转化成String for (int i = 0; i < 10000000; i++) { number2 = String.valueOf(186); } //计算从调用开始到结束的时间差 long returnTime2 = (System.currentTimeMillis() - time2); System.out.println("String.valueOf用时:" + returnTime2 + "毫秒,值为:" + number2); // 方法2------end------------------------------------------- //比较两种方法的用时长短 if (returnTime1 > returnTime2) { firstMethodOld++; } } float Probability= firstMethodOld / 10f; //System.out.println("firstMethodOld:"+firstMethodOld); System.out.println("Integer.toString方法调用时间比String.valueOf方法调用时间长的概率是:" + Probability); /**执行结果如下: Integer.toString方法用时:328毫秒,值为:186 String.valueOf用时:328毫秒,值为:186 Integer.toString方法用时:329毫秒,值为:186 String.valueOf用时:328毫秒,值为:186 Integer.toString方法用时:312毫秒,值为:186 String.valueOf用时:344毫秒,值为:186 Integer.toString方法用时:312毫秒,值为:186 String.valueOf用时:329毫秒,值为:186 Integer.toString方法用时:312毫秒,值为:186 String.valueOf用时:328毫秒,值为:186 Integer.toString方法用时:328毫秒,值为:186 String.valueOf用时:328毫秒,值为:186 Integer.toString方法用时:313毫秒,值为:186 String.valueOf用时:328毫秒,值为:186 Integer.toString方法用时:328毫秒,值为:186 String.valueOf用时:328毫秒,值为:186 Integer.toString方法用时:313毫秒,值为:186 String.valueOf用时:328毫秒,值为:186 Integer.toString方法用时:328毫秒,值为:186 String.valueOf用时:328毫秒,值为:186 Integer.toString方法调用时间比String.valueOf方法调用时间长的概率是:0.1 */ } }
其实我们看String.java源码也能看出来:
public static String valueOf(int i) { return Integer.toString(i, 10); }
String.valueOf也是调用的Integer.toString,所以String.valueOf属于二次装载,不如Integer.toString来的直接。所以咱以后最好用Integer.toString方法来转换。