Integer.parseInt(s)的jdk源码为:
public static int parseInt(String s) throws NumberFormatException {
return parseInt(s,10);
}
Integer.valueOf(s)的jdk源码为:
public static Integer valueOf(String s) throws NumberFormatException{
return new Integer(parseInt(s, 10));
}
方法返回值型明显不同。
测试代码:
public static void main(String[] args) {
String a="1";
String b="1";
System.out.println(Integer.parseInt(a)==Integer.valueOf(b));//int和Integer比较,Integer自动拆箱
System.out.println(Integer.parseInt(a)==Integer.parseInt(b)); //两个基本类型比较自然没有问题。
System.out.println(Integer.valueOf(a)==Integer.valueOf(b)); //两个Integer对象比较,输出为false
}