Integer 转为String三种方法有以下三种方法,

Integer obj=1;

1:String.valueOf(obj);

2:obj.toString();

3:""+obj;

我们分别按照以上方法循环执行以上操作,代码如下:
public static void main(String[] args) {
int loopTime = 50000;
Integer i = 0;
long startTime = System.currentTimeMillis();
String str = null;
for (int j = 0; j < loopTime; j++) {
str = String.valueOf(i);
}
System.out.println("String.valueOf():" + (System.currentTimeMillis() - startTime) + "ms");
startTime = System.currentTimeMillis();
for (int j = 0; j < loopTime; j++) {
str = i.toString();
}
System.out.println("Integer.toString():" + (System.currentTimeMillis() - startTime) + "ms");
startTime = System.currentTimeMillis();
for (int j = 0; j < loopTime; j++) {
str = i + "";
}
System.out.println("i + \"\":" + (System.currentTimeMillis() - startTime) + "ms");
}

执行结果如下,基本就在以下结果附近徘徊

String.valueOf():5ms
Integer.toString():2ms
i + "":9ms

可见Integer.toString(),执行时间最短最快,自己在做的过程中很多地方却用了第三种方式。我们看看String.valueOf()的源码:

public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}

 

可以看出前两者实现相差不大,只是多做了一次为空的判断,也许我们在在做转换的时候就已经做了。所以我们在做转字符串操作时,尽量用Integer.toString()操作。

至于最后一种方法的实现方式,还需要查查资料了。

 

 

标签: Integer转String

添加新评论