< p >
Integer.parseInt("5")
和 new Integer("5")
有什么区别? 我在代码中看到这两种类型都被使用了,它们之间有什么区别?
Integer.parseInt("5")
和 new Integer("5")
有什么区别? 我在代码中看到这两种类型都被使用了,它们之间有什么区别?
他们使用相同的实现:
public Integer(String s) throws NumberFormatException {
this.value = parseInt(s, 10);
}
public static int parseInt(String s) throws NumberFormatException {
return parseInt(s,10);
}
主要区别在于parseInt
返回一个基本类型(int
),而Integer
构造函数返回(毫不意外)一个Integer
实例。int
,使用parseInt
。如果你需要一个Integer
实例,可以调用parseInt
并将其赋值给一个Integer
变量(它会自动装箱),或者调用Integer.valueOf(String)
,这比调用Integer(String)
构造函数更好,因为Integer
构造函数不能利用IntegerCache
(因为每次写new Integer(..)
都会得到一个新的实例)。new Integer("5")
。如果你需要一个Integer
实例,Integer.valueOf("5")
更好,因为它会为小整数返回缓存实例。Integer.parseInt()
则不是这种情况。 - user140547