欢迎使用OCA的Java Puzzlers的第二部分。 在这一部分中,我们将看到一个有趣的案例,涉及Java 7附带的数字文字中的下划线分隔符。
在下面的类中,您可以在十进制文字中看到分隔符下划线。 还请注意,该类现在可以正常编译。 八进制是八进制表示,二进制是二进制,我敢肯定你不会猜十六进制。
public class Puzzler { public static void main(String[] args){ int decimal = 12_345; octal = int octal = 04321 ; int binary = 0B1010; int hex = 0X4321A ; } }
八进制文字定义为0,二进制定义为0b / 0B,十六进制定义为0x / 0X。 好的,让我们开始将_放在它们后面以提高可读性。
public class Puzzler { public static void main(String[] args){ int decimal = 12_345; octal = 0_4321; int octal = 0_4321; int binary = 0B1010; int hex = 0X4321A ; } }
整齐。 它编译没有问题。 让我们移动到二进制和十六进制。
public class Puzzler { public static void main(String[] args){ int decimal = 12_345; octal = 0_4321; int octal = 0_4321; int binary = 0B_1010; int hex = 0X_4321A; } }
不。 您将在那里看到“非法下划线”。 我确定这是在设计时考虑到某些事情,但确实是令人惊讶的行为。
翻译自: https://www.javacodegeeks.com/2020/04/java-puzzlers-from-oca-part-2.html