class Demo {
public static void main(String[] args) {
String foo = "blue";
boolean[] bar = new boolean[2];
if (bar[0]) {
foo = "green";
}
System.out.println(foo); // 輸出 blue
}
}
輸出 blue 而非 green,因為:
boolean[] bar = new boolean[2] 創建數組時,所有元素自動初始化為默認值 false。bar[0] 為 false,if (bar[0]) 條件不成立,代碼塊不執行。foo 保持初始值 "blue"。| 類型 | 默認值 |
|---|---|
| byte, short, int, long | 0 |
| float, double | 0.0 |
| char | '\u0000' (空字符) |
| boolean | false |
| 引用類型 (Object, String, 數組等) | null |
boolean[] bar = {false, false}; // 或 new boolean[]{false, true};
List<Boolean> list = Arrays.asList(false, true); 避免基本類型數組陷阱。Boolean[] boxed = new Boolean[2]; // 元素默認 null
if (boxed[0]) { ... } // 拋出 NullPointerException!
包裝類型數組默認值是 null,直接用於條件判斷會拋 NPE,更危險。