在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並不是一個數位字面值形式,而是一個變數標識符(變數名)