Given the code fragment:



public class Test {
    public static void main(String[] args) {
        /* insert code here */
        array[0] = 10;
        array[1] = 20;
        System.out.print(array[0] + ":" + array[1]);
    }
}

Which code fragment, when inserted at line 3, enables the code to print 10:20?

A.

int[] array = new int[2];
B.
int[] array;
array = int[2];
C.
int array = new int[2];
D.
int array [2] ;

題解

題目有使用到「array」這個變數,從第4行到第6行可以看出「array」是一個陣列。原先的程式中「array」並沒有先被宣告出來,也沒有實體化任何的陣列物件給「array」變數。

選項A是正確的。宣告「array」變數,並實體化出一個長度為2的整數陣列物件。
選項B是把選項A拆成兩行,但少了new運算子來實體化出整數陣列物件,編譯錯誤。
選項C將「array」宣告成整數基本型態,又實體化出一個長度為2的整數陣列物件指派給「array」整數變數儲存,型態不對造成編譯錯誤。
選項D比較像是C語言宣告陣列於堆疊(stack)空間的方式,在Java語言中是錯誤的用法,會造成編譯錯誤。