java中的双重vs双重

Mah*_*oud 10 java methods double parameter-passing

可能重复:
Java:比较不同的double和Double

在我的一个实验室的示例java程序中,我有两种不同的方法分别采用Double和double参数.
在将参数传递给它们时,如何区分它们?

Max*_*tin 28

Double参数可以在null什么时候double不能.


Tom*_*ann 24

首先,您需要了解两种类型之间的区别. double是原始类型,Double而是一个对象.

下面的代码显示了一个重载方法,我假设它类似于您的实验室代码.

void doStuff(Double d){ System.out.println("Object call"); }
void doStuff(double d){ System.out.println("Primitive call"); }
Run Code Online (Sandbox Code Playgroud)

有几种方法可以调用这些方法:

doStuff(100);
doStuff(200d);
doStuff(new Double(100));
Run Code Online (Sandbox Code Playgroud)

这些调用将导致:

"Primitive call"
"Primitive call"
"Object call"
Run Code Online (Sandbox Code Playgroud)

  • 在理解差异时,我发现以下信息更有用:double是double类型的简单数字.双人是一个班级.它包含double类型的单个字段,但具有.toString()和floatValue()等内置函数,并且可以扩展.使用'double',您需要使用String.valueOf()来获取其字符串,但使用Double,您只需要.toString(). (3认同)