java中parseInt和valueOf之间的区别?
这两种方法有什么区别? 他们似乎做了完全一样的事情(也适用于parseFloat() , parseDouble() , parseLong()等,它们与Long.valueOf(string)什么不同?
编辑:另外,这些是哪个更好,常规使用更多?
那么, Integer.valueOf(String)的API确实表示该String被解释为与赋予Integer.parseInt(String)完全一样。 但是, valueOf(String)返回一个new Integer()对象,而parseInt(String)返回一个基本int 。
如果你想享受Integer.valueOf(int)的潜在缓存好处,你也可以使用这个眼神:
Integer k = Integer.valueOf(Integer.parseInt("123"))
现在,如果你想要的是对象而不是基元,那么使用valueOf(String)可能比用parseInt(String)创建一个新对象更有吸引力,因为前者一直存在于Integer , Long , Double等等。
从这个论坛:
parseInt()返回原始整数类型(int),由此valueOf返回代表整数的对象java.lang.Integer。 有些情况下你可能需要一个Integer对象,而不是原始类型。
当然,另一个明显的区别是intValue是一个实例方法, parseInt是一个静态方法。
Integer.valueOf(s)
类似于
new Integer(Integer.parseInt(s))
区别在于valueOf()返回一个Integer ,而parseInt()返回一个int (一种基元类型)。 还要注意, valueOf()可以返回一个缓存的Integer实例,当==测试的结果似乎间歇性地正确时,会导致混淆的结果。 在自动装箱之前,可能会有不同的便利性,在Java 1.5之后它并不重要。
而且, Integer.parseInt(s)也可以采用原始数据类型。
