Java中valueOf与parseInt方法比较

首先从返回类型可以看出parseInt返回的是基本类型int,而valueOf返回的是对象。

我们来看一下JDK8的官方文档:
Java中valueOf与parseInt方法比较

再看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方法。