在 Java7 中,引入了在数字字面量中使用下划线(_)来增强数字的可读性。使用下划线可以将长数字分隔成更易读的部分,而不会影响数字的值。例如:
package com.hxstrive.jdk7.base;
/**
* JDK7新特性之下划线
* @author hxstrive.com
*/
public class UnderlineDemo1 {
public static void main(String[] args) {
// 1. 数字下划线
int a = 1_000;
System.out.println(a);
// 2. 字符串下划线
String str = "Hello, _World!";
System.out.println(str);
// 3. 浮点数下划线
double b = 1_000.5;
System.out.println(b);
}
}⚠️注意,下划线可以放在数字中的任何位置,但不能放在数字的开头或结尾,并且相邻的下划线是不允许的。例如:
int a = _10_2100; // 错误 int a = 10_2100_; // 错误 int b = 10__2100; // 正确 System.out.println(b); // 102100 int c = 10_2_100; // 正确 System.out.println(c); // 102100
如果我们将下划线和二进制字面值表示方法相结合,那么二进制字面量串看上去会更优雅,例如:
package com.hxstrive.jdk7.base;
/**
* JDK7新特性之下划线
* @author hxstrive.com
*/
public class UnderlineDemo2 {
public static void main(String[] args) {
int a = 0b0101_0100_0000_0111_0001_1101;
int b = 0b0001_0000_0100_0010_0001_1101;
System.out.println("a & b = " + (a & b));
System.out.println("a | b = " + (a | b));
System.out.println("a ^ b = " + (a ^ b));
//结果:
//a & b = 1049117
//a | b = 5523229
//a ^ b = 4474112
}
}上面示例中的 0b0101_0100_0000_0111_0001_1101 是不是比 0b010101000000011100011101 看上去更好阅读和优雅。