Double.valueOf(String s)和Double.ParseDouble(String s)之间的区别是什么?
据我了解的文档,ParseDouble函数做了类似的事情:
Double parseDouble(String s) throws ... { return new Double(Double.valueOf(s)); }
逻辑是相同的,但Double.valueOf()的返回值返回一个堆分配的Double对象,其中parseDouble返回一个原始double。 您的代码示例不太正确。 java源代码如下:
public static double parseDouble(String s) throws NumberFormatException { return FloatingDecimal.readJavaFormatString(s).doubleValue(); } public static Double valueOf(String s) throws NumberFormatException { return new Double(FloatingDecimal.readJavaFormatString(s).doubleValue()); }
取决于您是想要双人还是双人。 虽然使用自动装箱,但这并不重要。 如果你正在做一些非常密集的事情,那么你想避免在需要双打的地方使用双打以避免自动装箱开销。 但是,它需要非常,非常,非常密集,才能真正发挥作用。
但是,我仍然主张根据所需的结果使用合适的一个。
parseDouble
返回一个double value
,valueOf返回一个Double
类型的新object
。
简单,
public static double parseDouble(String s) throws NumberFormatException
返回一个java原始double
,而
public static Double valueOf(String s) throws NumberFormatException
返回Double
的包装 double值。
valueOf返回一个double,parseDouble返回一个Double。 使用适合您需求的任何一种。
在Java 6中,情况恰恰相反:
Double valueOf(String s)抛出... { 返回new Double(Double.parseDouble(s)); }