java中的parseInt()和valueOf()之间有什么不同?

2022-08-31 04:23:30

与 有何不同?parseInt()valueOf()

他们似乎对我做完全相同的事情(也适用于,等,他们有什么不同?parseFloat()parseDouble()parseLong()Long.valueOf(string)

此外,其中哪一个更可取并且按照惯例更常用?


答案 1

好吧,Integer.valueOf(String)的API确实说它被解释得完全像它被赋予Integer.parseInt(String)一样。但是, 返回一个新对象,而返回一个基元 。StringvalueOf(String)Integer()parseInt(String)int

如果你想享受 Integer.valueOf(int) 的潜在缓存优势,你也可以使用这个眼中钉:

Integer k = Integer.valueOf(Integer.parseInt("123"))

现在,如果你想要的是对象而不是基元,那么使用可能比从中制作一个新对象更有吸引力,因为前者始终存在于,,等。valueOf(String)parseInt(String)IntegerLongDouble


答案 2

来自此论坛

parseInt() 返回基元整数类型 (int),valueOf 返回 java.lang.Integer,它是整数的代表对象。在某些情况下,您可能需要 Integer 对象,而不是基元类型。

当然,另一个明显的区别是intValue是一种实例方法,其中parseInt是一种静态方法。