关于方法:java中的double vs double

Double vs double in java

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Java : different double and Double in comparison

在我的一个实验室的Java程序中,我有两种不同的方法,分别采用双参数和双参数。在向他们传递参数时,我如何区分它们?


Double参数可以nullDouble不能。


首先你需要理解之间的差别的两个类型。而DoubleDouble是一个原始类型是一个对象。

下面的代码显示的方法其中一个过重,认为相似的实验室代码。

1
2
void doStuff(Double d){ System.out.println("Object call"); }
void doStuff(double d){ System.out.println("Primitive call"); }

有几个方法,你可以调用方法:论文

1
2
3
doStuff(100);
doStuff(200d);
doStuff(new Double(100));

研究结果:想在电话

1
2
3
"Primitive call"
"Primitive call"
"Object call"


Double-是一个原始类型,在AS Double是一个包装对象。

一个最普通的使用对象是一个Collection包装。

电子商务:

1
List<Double> d = new ArrayList<Double>();

在Java 5 a机制已被引入到Autoboxing转换之间的直接。

电子商务:

1
2
double d = 10.41;
Double wrapper = d;


1
2
3
4
5
// Method A
public static void foo(Double d) {...}

// Method B
public static void foo(double d) {...}

如果你的护照evidently Double对象A,然后A的想法;如果你有什么样的:。

1
Double d = new Double(1.0);

如果你继续,你要呼叫的文字通双法B.什么是有趣的是,如果你有什么样

1
Double d = new Double(1.0);

因此,本案例中的想法B,因为类型是DoubledDouble对象得到一个Double装箱。在同样的注意,如果你有:

1
Double d = 1.0;

然后我们的方法称为A型,因为dDouble(Double-而得到一个Doubleautoboxed)。


是一个双舱双包装,是一个原始类型的C / C + +类。以上为双圆外,大多是用在有用的地方是仿制药,但也需要有一个对象的两个数值的和适当的中草药。在大多数情况下可以用"双和双interchangeably。


你有一个example of方法重载。这是一个很好的编译器和JVM自动选择正确的方法基于类型的参数,是用来当你呼叫的方法。


Double是参考型和Double是值类型。

The Double class wraps a value of the primitive type double in an object. An object of type Double contains a single field whose type is double." link

为保持和Double@ FESS是因为它可以null参考类型。

如果你想你可以转换从一个explictly DoubleDouble.doubleValue()viceverrsa new Double(1.0)方法提供。

所以他说:"millimoose

You should use X.valueOf() instead of new X(). The valueOf methods are allowed to cache the boxing types to reduce memory use. (Not sure this is done for Doubles but it's a good habit to get into.)"