Double与Double有何不同?

时间:2014-02-05 16:21:26

标签: java

double [] dou = new double [12];


Double [] dou = new Double [12];

dou(在这两种情况下)是如何相互不同的?

我试图打印dou [0](没有任何初始化)第一个案例显示0.0而第二个案例显示null可以有人告诉我为什么会这样吗?

提前致谢

3 个答案:

答案 0 :(得分:5)

double是基本类型,而Doubledouble的类包装。

由于double是原始的,因此其默认值为0。另一方面,Double变量是对象,因此它们的默认值为null。这在JLS中有说明:Initial Values of Variables(强调我的):

  

每个类变量,实例变量或数组组件在创建时都会使用默认值进行初始化(§15.9,§15.10):

     

对于type byte,默认值为零,即(byte)0的值。

     

对于short类型,默认值为零,即(short)0。

的值      

对于int类型,默认值为零,即0。

     

对于long类型,默认值为零,即0L。

     

对于float类型,默认值为正零,即0.0f。

     

对于double类型,默认值为正零,即0.0d。

     

对于char类型,默认值为空字符,即'\ u0000'。

     

对于类型boolean,默认值为false。

     

对于所有引用类型(§4.3),默认值为null

这也适用于其他原语及其各自的类包装器:

  • intInteger
  • longLong
  • floatFloat
  • booleanBoolean

答案 1 :(得分:1)

double是原始类型。当在数组中用作元素时,如果没有给出其他值作为默认值,则java编译器使用0.0。

Double是引用类型。当您将它用作数组中的元素时,java编译器会将其作为对象,并且数组中每个对象的默认值为null。

答案 2 :(得分:0)

Double是一个类,double是基本类型