民國111年 第2梯次 電腦軟體設計(JAVA)乙級 學科
第31題
有關Java 語言的Array 使用到超過所宣告的索引上限時,下述何者正確?
題目
有關Java 語言的Array 使用到超過所宣告的索引上限時,下述何者正確?
- (1) 編譯執行沒有問題, 但會產生不正確的結果
- (2) 產生編譯警告
- (3) 產生編譯錯誤
- (4) 編譯無誤,執行時期會產生錯誤
官方答案
(4) 編譯無誤,執行時期會產生錯誤
解析
Java 對陣列(Array)設有「執行時期邊界檢查(runtime bounds checking)」。編譯時期編譯器僅檢查語法,無法預知執行時的索引值,因此程式可正常編譯;但當執行到超過索引上限(或低於下限)的存取時,JVM 會拋出 ArrayIndexOutOfBoundsException,屬執行時期錯誤(RuntimeException),程式隨即中止。故「編譯無誤,執行時期會產生錯誤」正確。選項 1、2、3 皆有誤:編譯期既不報錯也不產生警告,更不會默默產生不正確結果而不中斷。觀念重點:Java 以安全性取代 C/C++ 的指標自由,越界必在執行期被偵測。
AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。