Java整型字面量支持十进制(默认,不以0开头)、二进制(0b/0B前缀)、十六进制(0x/0X前缀)和八进制(0前缀),但推荐使用前三种;八进制因易错已基本弃用。

Java 中整型字面量支持四种进制表示:十进制、二进制、十六进制和八进制,但实际开发中推荐使用前三种,八进制因易出错已基本弃用。
十进制(默认,最常用)
不加任何前缀,由数字 0–9 组成,且不能以 0 开头(除单独的 0)。
- 正确写法:int a = 123; int zero = 0; int big = 1_000_000;
- 错误写法:int b = 0123; → 这会被当作八进制解析(值为 83),不是十进制 123
- 下划线可提升可读性,编译时被忽略,如 1_000_000 和 1000000 等价
二进制(JDK 7+ 支持,位操作首选)
必须以 0b 或 0B 开头,后续只能是 0 和 1。
- 正确写法:int flag = 0b1000_0000; // 表示最高位为 1,语义清晰
- 错误写法:int x = b1010;(缺 0 前缀)、int y = 0b102;(含非法字符 2)
- 常用于掩码定义、协议字段、状态位控制,比十进制更贴近底层意图
十六进制(高频实用,尤其硬件/颜色/协议)
以 0x 或 0X 开头,后接 0–9、a–f(大小写不敏感)。
立即学习“Java免费学习笔记(深入)”;
- 正确写法:int color = 0xFF00FF00; long addr = 0Xdead_beef_cafe_babeL;
- 字母建议统一风格(全小写或全大写),避免混用;下划线可增强长值可读性
- 广泛用于 Android 颜色值、内存地址、哈希摘要、寄存器配置等场景
八进制(语法存在,但不推荐)
以单个 0 开头(不是 0o),仅含数字 0–7。Java 仍支持,但极易误读或报错。
- 合法但危险:int x = 017; // 十进制 15;int y = 0; // 十进制 0
- 直接编译失败:int z = 08;、int w = 09; → “Invalid octal literal”
- 现代项目中应避免使用;若需表达权限等含义,改用十进制加注释,如 // chmod 755 → 493


















