Java中的Double vs doubleValue

Med*_*Man 7 java

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

rfe*_*eak 9

在Java 1.5之前,Java中不存在自动装箱(和拆箱).因此,您需要从Double中提取底层基元.

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

  • @MedicineMan不,拆箱只是编译器会把`double foo = myDouble`转换为`double foo = myDouble.doubleValue()`为你 - 明确调用方法并不重要.大部分性能打击是首先创建盒装的"Double"对象(并且可能在较小程度上,必须访问堆内存而不是堆栈var来获取值). (2认同)