java支持二进制(0b/0b)、八进制(0)、十六进制(0x/0x)整数字面量,均不适用于浮点数;二进制自java 7起可用,八进制易混淆不推荐,十六进制最常用;均默认int型,超范围需加l,支持数字间下划线。

Java 中可以直接用二进制、八进制、十六进制写整数字面量,但有固定前缀和限制,不能用于浮点数。
二进制字面量(以 0b 或 0B 开头)
从 Java 7 开始支持,必须用 0b 或 0B 开头,后面只允许 0 和 1:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- int b1 = 0b1010; // 十进制 10
- long b2 = 0B1111_0000_1111_0000L; // 支持下划线分隔,增强可读性
- 不能写成 01010(那是八进制),也不能漏掉 0b
八进制字面量(以 0 开头)
传统写法,以数字 0 开头(注意不是零字母 O),后面是 0–7 的数字:
- int o1 = 012; // 十进制 10(因为 1×8 + 2 = 10)
- int o2 = 0777; // 十进制 511
- ⚠️ 注意:08、09 是非法的(含 8 或 9)
- 不推荐在新代码中使用,易与十进制混淆(比如 010 是 8 而非 10)
十六进制字面量(以 0x 或 0X 开头)
最常用,以 0x 或 0X 开头,后跟 0–9、a–f(大小写均可):
- int h1 = 0xA; // 十进制 10
- long h2 = 0xFF_FF_FF_FF_L; // 全 F 的 int 值,加 L 防溢出
- 支持下划线:如 0x1A_2B_3C
- 常用于位运算、颜色值(如 0xFF00FF 表示品红)
注意事项和常见错误
- 所有进制字面量默认是 int 类型;超范围或需 long 时,末尾加 L 或 l(推荐大写 L)
- 不支持二进制、八进制、十六进制的浮点数字面量(如 0b10.1、0x1F.2 是语法错误)
- Java 不支持任意进制转换字面量(如没有 0d 表示十进制,十进制就直接写数字)
- 下划线只能出现在数字之间,不能开头、结尾或连续多个,如 0b110__01 ❌,0b_101 ❌
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










