[] の数を増やすことで3次元、4次元といった高次元の配列を定義できます。
宣言時のブラケットの位置は、型名の直後、変数名の直後、またはその両方に分散して記述することが可能です(例: int[] arr[] や int[][] arr はどちらも2次元配列)。
new キーワードを用いて多次元配列の領域を確保する場合、最上位の次元(第1次元 / 行数)の要素数は必ず指定しなければなりませんが、下位の次元(列数)のサイズ指定は省略して後から動的に子配列を割り当てることができます。
しかし、new int[][] のように第1次元のサイズまで省略した記述を行うと、領域サイズが特定できないためコンパイルエラーとなります。
int[][] a = new int[][3]; はコンパイルエラー! new int[2][] のように最初の次元は必須です。
2. 宣言表記のひっかけ:
int[] a[], b; // a は2次元配列 (int[][]), b は1次元配列 (int[])
int[][] c, d; // c も d も2次元配列 (int[][])
このように、カンマ区切りで複数宣言した際のブラケットの位置による型の違いを問う問題が多発するため、各変数に適用される次元数を正確に把握する必要があります。
3. NullPointerExceptionの罠:int[][] a = new int[2][]; System.out.println(a[0][0]); は a[0] が null の状態であるため、実行時に NullPointerException が発生します。
ファクトチェック:1Z0-825-JPN(2026-08-01確認)。試験番号1Z0-825-JPN、試験時間90分、60問、合格ライン65%です。
この記事は公式出題範囲・チェックリストとの対応を編集部で確認した学習解説です。