我有二维数组
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这样的原始类型)
由于
答案 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)
是的,保证。每种类型都有一个默认初始化值: