测试环境:操作系统 windows 10,内存 8g,jdk 1.7,jvm参数是默认值,测试代码如下:
public static void main(String[] args) {
Integer[] intArr = new Integer[1000000];
String[] strArr1 = new String[1000000];
String[] strArr2 = new String[1000000];
String[] strArr3 = new String[1000000];
String[] strArr4 = new String[1000000];
Long t1 = System.currentTimeMillis();
for(int i=0;i<1000000;i++){
intArr[i]=i+1;
}
Long t2 = System.currentTimeMillis();
for(int i=0;i<1000000;i++){
strArr1[i] = String.valueOf(intArr[i]);
}
Long t3 = System.currentTimeMillis();
for(int i=0;i<1000000;i++){
strArr2[i] = Integer.toString(intArr[i]);
}
Long t4 = System.currentTimeMillis();
for(int i=0;i<1000000;i++){
strArr3[i] = intArr[i]+"";
}
Long t5 = System.currentTimeMillis();
for(int i=0;i<1000000;i++){
strArr4[i] = (intArr[i]).toString();
}
Long t6 = System.currentTimeMillis();
System.out.println("t1 = "+t1);
System.out.println("t2 = "+t2);
System.out.println("t3 = "+t3);
System.out.println("t4 = "+t4);
System.out.println("t5 = "+t5);
System.out.println("t6 = "+t6);
System.out.println("赋值:"+(t2-t1));
System.out.println("String.valueOf(i):"+(t3-t2));
System.out.println("Integer.toString(i):"+(t4-t3));
System.out.println("i+'':"+(t5-t4));
System.out.println("i.toString():"+(t6-t5));
}
执行结果:
由此可见,推荐使用 +"" 或者 toString() 方法。