配列とコレクション応用問題
次のコードを実行したとき、何が起きるか。最も適切な説明を選びなさい。 int[] arr = {10, 20, 30}; arr[3] = 40; System.out.println(arr.length);
A.配列のサイズが自動的に4に拡張され、40が追加される
✗ Javaの配列はサイズが固定であり、自動拡張されません。ArrayList等を使う必要があります。
B.コンパイルエラーが発生し、プログラムはビルドできない
✗ インデックスの範囲外アクセスはコンパイル時には検出されません。実行時エラーになります。
C.実行時にArrayIndexOutOfBoundsExceptionが発生する← 正解
✓ 正解です。配列の有効インデックスは0〜2であり、arr[3]への代入時にArrayIndexOutOfBoundsExceptionが発生します。
D.arr[3]への代入は無視され、lengthとして3が出力される
✗ Javaでは範囲外アクセスを無視する仕組みはなく、例外がスローされます。