int num;
num = new Integer("1");
num = Integer.valueOf("1");
num = Integer.parseInt("1");
这三种方式有啥区别呢?我们看看JDK的源代码就清楚了。
public Integer(String s) throws NumberFormatException {
this.value = parseInt(s, 10); // 调用了 parseInt的10进制方法,得到的是一个Integer对象
}
public static Integer valueOf(String s) throws NumberFormatException {
return new Integer(parseInt(s, 10)); // 更复杂,先调用parseInt的10进制变成整数,在变成对象,返回了Inreger对象
}
public static int parseInt(String s) throws NumberFormatException {
return parseInt(s, 10); // 调用parseInt的10进制,返回证书
}
可见,
如果为了拿到int,则parseInt是最划算的
如果为了拿到Integer,则 new Integer(String)是比较划算的。