在Java SE 7中新增了以二进制形式的字面值表示方式,你可以像使用十进制一样,方便地使用二进制形式的字面值来表示数值。
例如:
- // 一个8位的byte值:
- byte aByte = 0b100001;
- // 一个16位的short值:
- short aShort = 0b1010010100101;
- // 一个32位的int值:
- int anInt1 = 0b101000010100010110100101000101;
- // 一个64位的long值(注意末尾的后缀「L」)
- long aLong = 0b101000010L;
- // 二进制字面值以0b或0B开头,不区分大小写
- int anInt2 = 0B101;
复制代码
在Java SE 7中,还支持以下划线作为分隔符联接的数值表示方式:
- //十进制形式
- int anInt1 = 123_45_6;
- //二进制、十六进制等形式也支持
- int anInt2 = 0b10_0110_100;
- int anInt3 = 0xFF_EC_DE_5E;
- //小数形式也支持
- float pi = 3.14_15F;
- double aDouble = 3.14_15;
- //多个下划线相连
- int chain = 5______2____0;
复制代码
不过以下几种书写形式是错误的:
- //下划线不能放在最后
- int x = 52_; //错误
- //下划线不能邻近小数点(邻近小数点前后都不行)
- float pi1 = 3_.1415F; // 错误
- float pi2 = 3._1415F; //错误
- //下划线不能紧放在后缀「L」或「F」的前面
- float pi3 = 3.1415_F; //错误
- long aLong1 = 999_99_9999_L;//错误
- //下划线不能放在表示进制的前缀字符之间
- int x5 = 0_x52; //错误
复制代码
此外,还要注意下面这种,将下划线放在最前面的情况:
- int _52 = 120; //在Java中,变量名称不能以数字开头,但可以下划线开头
- int x = _52; //所以,这里的_52并不是一个数字的字面值形式,而是一个变量标识符(变量名)
复制代码
|