-1

私は二次元配列を持っています

protected MyClass[][] myArray;

コンストラクターで私はこれを持っています

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

現在、初期化なし (別名 this.myArray[2][2] = new MyClass(par0, par1);) である this.myArray[2][2] の値は「null」です。

これは保証されていますか?また、この件についてはどこで詳しく読むことができますか? (int や boolean などのプリミティブ型の場合も)

ありがとう

4

3 に答える 3

1

はい、保証されています。配列値は、フィールドと同様に、null (オブジェクトの場合)、0 (数値プリミティブの場合)、および false (ブール値プリミティブの場合) で初期化されます。

http://docs.oracle.com/javase/specs/jls/se7/html/jls-10.html#jls-10.6-100を参照してください:

その長さの新しい配列にスペースが割り当てられます。配列を割り当てるのに十分なスペースがない場合、配列初期化子の評価は OutOfMemoryError をスローして突然完了します。それ以外の場合、指定された長さの 1 次元配列が作成され、配列の各コンポーネントがデフォルト値に初期化されます (§4.12.5)

(私のものを強調)

于 2013-04-07T14:17:56.930 に答える