Java中的Double vs doubleValue

时间:2012-01-03 03:20:50

标签: java

如果方法返回Double,为什么我们会调用方法“doubleValue”呢?它已经返回一个double并且在计算中,似乎正确评估。

4 个答案:

答案 0 :(得分:9)

在Java 1.5之前,Java中不存在自动装箱(和拆箱)。因此,您需要从Double中提取基础原语。

如果您不熟悉自动装箱,可以在此处阅读更多内容。 http://docs.oracle.com/javase/1.5.0/docs/guide/language/autoboxing.html

答案 1 :(得分:1)

在Double对象上调用'doubleValue'以从盒装对象转换为基本数据类型。由于大多数情况下Double会自动取消装箱,因此您通常不需要执行此操作,但如果您希望在转换中明确,则可以调用此方法。

答案 2 :(得分:1)

如果您需要从doubleValue获取double,请致电Double。前者是原始类型,而后者是包装器对象类型,它基本上将原始值封装在不可变对象中。如果可能的话(我在不完全知道您的代码的目的的情况下这样说),请使用double进行所有计算;如果您需要将值存储在DoubleCollection中,请仅使用Map;这是因为对象类型消耗更多内存,可能会受到强制转换操作。

很容易将doubleDouble混淆(同样适用于其他原始类型与包装类型),因为编译器会根据需要在已知的进程中自动从一个转换为另一个作为自动装箱(和自动拆箱),所以必须小心使用正确的类型。

答案 3 :(得分:1)

doubleValue从 Double 对象返回原始 double 。根据具体情况,您可能希望获得Double的双倍。