這組經典 Java 認證模擬題涵蓋了短路運算符行為、執行緒調度機制、Switch 語句落執行特性、字串比較陷阱等核心語法陷阱,是檢驗 Java 基礎功力的優質素材。以下為詳細解析:
int Output = 10;
boolean b1 = false;
if ((b1==true) && ((Output+=10)==20)) {
System.out.println("We are equal " + Output);
} else {
System.out.println("Not equal! " + Output);
}
正解:D. 編譯通過,輸出 "Not equal! 10"
解析:&& 為短路邏輯運算符。因 b1==false,左側條件為 false,JVM 直接短路跳過右側運算,Output+=10 根本不會執行,Output 保持 10。此題考察對短路機制與副作用運算順序的理解。
正解:C、D
int k=10;
switch(k){
default:
System.out.println("This is the default output");
break;
case 10:
System.out.println("ten");
case 20:
System.out.println("twenty");
break;
}
正解:D. 編譯運行輸出 "ten" 後續輸出 "twenty"
解析:k=10 匹配 case 10,輸出 "ten"。因無 break,繼續落執行 case 20 輸出 "twenty",遇 break 退出。default 位置不影響匹配順序。考察點:case 順序與 break 缺失導致的落執行行為。
String s = "Marcus";
String s2 = new String("Marcus");
if (s==s2) { ... } else { ... }
正解:C. 輸出 "Not equal"
解析:s 為字串常量池引用,s2 為 new 在堆上創建的新物件,兩者引用地址不同,== 比較引用地址故為 false。equals() 比較內容才會為 true。私有建構子不影響編譯(類內部可訪問)。此題強調:字串比較內容必用 equals(),== 僅比較引用同一性。
這四道題精準覆蓋了 Java 基礎語法中最易混淆的核心知識點,建議開發者在面試複習或日常編碼時反覆研習,構建扎實的語言模型。