在Java SE 7和更高版本中,_数字文字中数字之间的任何位置都可以出现任意数量的下划线字符()。例如,此功能使您可以将数字文字中的数字组分开,这可以提高代码的可读性。
    例如,如果您的代码包含许多数字,则可以使用下划线字符将数字分成三组,类似于使用逗号或空格这样的标点符号作为分隔符的方式。
    下面的示例显示了在数字文字中使用下划线的其他方式:
    长creditCardNumber = 1234_5678_9012_3456L;
    long socialSecurityNumber = 999_99_9999L;
    浮点pi = 3.14_15F;
    long hexBytes = 0xFF_EC_DE_5E;
    long hexWords = 0xCAFE_BABE;
    long maxLong = 0x7fff_ffff_ffff_ffffL;
    字节半字节= 0b0010_0101;
    长字节= 0b11010010_01101001_10010100_10010010;
    您只能在数字之间使用下划线;您不能在以下位置放置下划线:

    • 在数字的开头或结尾
    • 与浮点文字中的小数点相邻
    • 之前F或L后缀
    • 在需要一串数字的位置

    下面的示例演示数字文字中的有效和无效的下划线位置(突出显示):
    浮点pi1 = 3_.1415F; // 无效的; 不能将下划线放在小数点附近
    浮点pi2 = 3._1415F; // 无效的; 不能将下划线放在小数点附近
    long socialSecurityNumber1
    = 999_99_9999_L; // 无效的; 不能在L后缀前加下划线

    int x1 = 52; //这是一个标识符,而不是数字文字
    int x2 = 5_2; // OK(十进制文字)
    **int x3 = 52
    ; // 无效的; 不能在文字的末尾加下划线**
    int x4 = 5_2; // OK(十进制文字)

    int x5 = 0_x52; // 无效的; 无法在0x基数前缀
    int x6 = 0x_52中添加下划线;// 无效的; 不能在数字开头加下划线
    int x7 = 0x52; // OK(十六进制文字)
    **int x8 = 0x52
    ; // 无效的; 不能在数字末尾加下划线**

    int x9 = 052; // OK(八进制文字)
    int x10 = 05_2; // OK(八进制文字)
    **int x11 = 052
    ; // 无效的; 不能在数字末尾加下划线**

    参考连接地址:
    https://docs.oracle.com/javase/7/docs/technotes/guides/language/underscores-literals.html