Java中valueOf与parseInt方法比较
首先从返回类型可以看出parseInt返回的是基本类型int,而valueOf返回的是对象。
我们来看一下JDK8的官方文档:
再看valueOf的描述有
new Integer(Integer.parseInt(s))
可以大胆猜测valueOf的内部其实就是调用了parseInt方法。 所以直接去找源码。
public static Integer valueOf(String s) throws NumberFormatException {
return Integer.valueOf(parseInt(s, 10));
}
public static Integer valueOf(int i) {
assert IntegerCache.high >= 127;
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
public static int parseInt(String s) throws NumberFormatException {
return parseInt(s,10);
}
结语
因为JDK5以后实现了自动拆装箱,因而两者的差别也不是特别大了,但是从效率上考虑,建议首先考虑parseInt方法。