Integer.parseInt():返回int类型,返回值可以直接使用==判断是否相等
Integer.valueOf():返回值是Integer类型,返回值在[-128,127]之间会返回Integer中的内部类IntegerCache的Integer类型cache数组中的对象,可以使用==判断是否相等;返回值不在[-128,127]之间会return new Integer(),不能用==比较大小。
public static Integer valueOf(String s) throws NumberFormatException {
return Integer.valueOf(parseInt(s, 10));
}
public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
parseInt()和valueOf()都会抛出异常,需要进行捕获。
ps:Integer.getInteger() 是用来获取系统属性值的,不是用来进行类型转换的,该方法不会抛出异常:Determines the integer value of the system property with the specified name.
The first argument is treated as the name of a system property. System properties are accessible through the System.getProperty(String) method. The string value of this property is then interpreted as an integer value using the grammar supported by decode and an Integer object representing this value is returned.
If there is no property with the specified name, if the specified name is empty or null, or if the property does not have the correct numeric format, then null is returned.