System.out.println(012); // 輸出 10
System.out.println(0x12); // 輸出 18
0 開頭的整數字面值視為八進位(Octal)。0x 或 0X 開頭視為十六進位(Hexadecimal)。012 八進位 = 1×8¹ + 2×8⁰ = 8 + 2 = 10(十進位)。println 預設以十進位輸出,故顯示 10。
int month = 08; 會編譯錯誤(八進位無數字 8),正確寫法 int month = 8;。chmod 0755 在 Java 中需寫 0755(八進位)或 0o755(Java 8+ 支援 0o 前綴)。String.format("%o", 10) 輸出 12(八進位字串)。int bits = 0b1010; // 十進位 10
System.out.println(bits); // 輸出 10
統一使用 0b(二進位)、0(八進位)、0x(十六進位)前綴,避免隱性轉換錯誤。