如果我初始化一个对象数组并且没有设置任何值,那么默认值是什么?

时间:2012-09-30 22:55:33

标签: java arrays

我知道如果它是一个原始类型的数组,比如int,它会是0,但作为一个对象,比如一个String或一个定制的类,它仍然是0吗?空值?或者是什么?

4 个答案:

答案 0 :(得分:10)

它始终是元素类型的默认值 - 任何类类型为null,数字类型为0,'\0'char,{{1}为false }。 (boolean在Java中不存在,0对于引用来说是无意义的值。它可能是内存中的物理表示,但它本身不是引用值。)< / p>

有关数组创建的工作原理,请参阅JLS的section 15.10.1;有关不同类型的默认值的更详细的详细信息,请参阅section 4.12.5

答案 1 :(得分:6)

对象数组的元素初始化为null。简单就像馅饼。

答案 2 :(得分:3)

对对象的任何引用都初始化为nullHere您可以找到Java如何初始化其原始数据类型(包括对对象的引用)。

回顾一下:

Data Type   Default Value (for fields)
byte        0
short       0
int         0
long        0L
float       0.0f
double      0.0d
char        '\u0000'
any object  null
boolean     false

答案 3 :(得分:0)

为了帮助您一点点默认类型的原则,想一下对象可能是一个确定的默认值?

  • 对于 int ,任何数字都有意义,例如 0
  • 对于布尔,任何逻辑值都有意义,例如 false
  • 对于 char ,任何符号都有意义,例如'\ 0'
  • ...

此类型存在明确的有效值范围例如{false,true} )。 因此任何值都可以用作默认值。

对于对象,没有明确的有效值范围。对象可以包含任何成员变量或提供某些方法,但对象没有特定的“值”