java进制字面量由编译器在词法分析阶段识别前缀:二进制用0b/0b(仅0、1)、八进制用0开头(仅0–7,不推荐)、十六进制用0x/0x(0–9、a–f);运行时解析字符串需用integer.parseint(str, radix)并捕获异常。

二进制字面量:必须用 0b 或 0B 开头
Java 7 起支持,后面只能跟 0 和 1,大小写不敏感。
- 合法:int x = 0b1010; → 值为 10;long y = 0B1100_1010L; → 支持下划线分隔
- 非法:int z = b1010;(缺 0);int w = 0b102;(含 2,不是二进制数字)
- 纯数字如 1010 永远是十进制一千零一十,不是二进制十
八进制字面量:以单个 0 开头,但强烈不建议使用
以 0 开头(不是 0o、0O),后面只能是 0–7。它容易误读且容错性差。
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
- 合法:int a = 012; → 八进制 12 = 1×8 + 2 = 10;int b = 00; → 就是 0
- 非法:int c = 08;(8 不是八进制数字,编译报错 Invalid octal digit)
- 现代项目中,IDE 通常会警告;Unix 权限如 0644,推荐改用 0x1B4 或十进制 420
十六进制字面量:用 0x 或 0X 开头,最常用也最安全
前缀明确,字母 a–f(或 A–F)不区分大小写,支持下划线增强可读性。
- 合法:int h1 = 0xFF;(255);long h2 = 0Xdead_C0deL;
- 非法:int k = 0xG1;(G 不是合法十六进制字符)
- 注意类型:0xFF 默认是 int(255),赋给 byte 需强制转换:byte b = (byte) 0xFF;
运行时解析字符串进制数:用 Integer.parseInt()
如果数据来自配置文件、用户输入或 JSON,是字符串形式(如 "1010"),不能直接当字面量用,必须调用方法:
- 二进制字符串:int n1 = Integer.parseInt("1010", 2);
- 八进制字符串:int n2 = Integer.parseInt("12", 8);
- 十六进制字符串:int n3 = Integer.parseInt("FF", 16);
- 这些方法抛出 NumberFormatException,需捕获处理
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










