声明对象数组 - 空值

时间:2013-04-07 14:15:46

标签: java declaration

我有二维数组

protected MyClass[][] myArray;

在构造函数中我有这个

this.myArray= new MyClass[20][20];

现在,没有inicialization(又名this.myArray [2] [2] = new MyClass(par0,par1);) this.myArray [2] [2]的值是“null”。

这有保证吗?我在哪里可以阅读更多关于这个主题的内容? (对于像int或boolean这样的原始类型)

由于

3 个答案:

答案 0 :(得分:1)

是的,这是有保障的。数组值初始化为null(对象),0(对于数字基元)和false(对于布尔基元),就像字段一样。

请参阅http://docs.oracle.com/javase/specs/jls/se7/html/jls-10.html#jls-10.6-100

  

为该长度的新数组分配空间。如果没有足够的空间来分配数组,则通过抛出OutOfMemoryError突然完成对数组初始化程序的评估。否则,创建一个具有指定长度的一维数组,并将数组的每个组件初始化为其默认值(§4.12.5)

(强调我的)

答案 1 :(得分:0)

是。这种行为是有保证的。 Object的默认值为null。因此,Objects数组的默认值也为null,因此需要实例化数组中的每个元素。请参阅Data Types中的默认值

答案 2 :(得分:0)

是的,保证。每种类型都有一个默认初始化值:

  • 数字原语= 0
  • boolean = false
  • 所有Objects = null