Double.valueOf(s)和Double.parseDouble有什么区别?

40

将一个对象转换为双精度浮点数时,注意到这两种方法。我发现自从1.2版本以来就有了parseDouble方法。如果它与valueOf(s)基本上执行相同的功能,为什么要添加这个方法呢?

3个回答

56

parseDouble() 返回一个基本类型的 double 值。而 valueOf() 则返回一个包装类 Double 的实例。在 Java 5 引入自动装箱之前,这是一个非常重要的区别(许多人认为现在仍然如此)。


很好,我刚刚通过一些重载发现了区别。现在要查找自动装箱。 - Will

20

这是因为两个方法不同。 valueOf() 创建一个Double对象,而这通常是不必要的。而parseDouble()则不需要创建对象。使用装箱后,valueOf(String)也不再需要了,但它仍然保留了向后兼容性。


7
如果您只需要值(primitive),请使用parseDouble(String s),成本更低。 valueOf(String s)返回一个包装原始double值的Double类。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接