在Java SE 7中新增了以二進制形式的字面值表示方式,你可以像使用十進制一樣,方便地使用二進制形式的字面值來表示數值。
例如:
1
2
3
4
5
6
7
8
9
10
|
// 一個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中,還支持以下劃線作為分隔符聯接的數值表示方式:
1
2
3
4
5
6
7
8
9
10
|
//十進制形式 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; |
不過以下幾種書寫形式是錯誤的:
1
2
3
4
5
6
7
8
9
10
|
//下劃線不能放在最后 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; //錯誤 |
此外,還要注意下面這種,將下劃線放在最前面的情況:
1
2
|
int _52 = 120 ; //在Java中,變量名稱不能以數字開頭,但可以下劃線開頭 int x = _52; //所以,這里的_52并不是一個數字的字面值形式,而是一個變量標識符(變量名) |