Java中数字里面混合有下划线10_000 代表什么意思?

复制代码
public static void main(String[] args) {
        int a = 10_000;
        System.out.println(a);  // 10000
    }

java 7 的 特性 :

复制代码
https://docs.oracle.com/javase/7/docs/technotes/guides/language/underscores-literals.html

程序中的数字可以使用下划线来进行分割(_)以便于为程序提供更好的可读性。

JDK 在编译的时候,将会对数字中间的下划线进行处理,替换掉下划线。

Underscores in Numeric Literals

In Java SE 7 and later, any number of underscore characters (_) can appear anywhere between digits in a numerical literal. This feature enables you, for example, to separate groups of digits in numeric literals, which can improve the readability of your code.

For instance, if your code contains numbers with many digits, you can use an underscore character to separate digits in groups of three, similar to how you would use a punctuation mark like a comma, or a space, as a separator.

The following example shows other ways you can use the underscore in numeric literals:

复制代码
long creditCardNumber = 1234_5678_9012_3456L;
long socialSecurityNumber = 999_99_9999L;
float pi = 	3.14_15F;
long hexBytes = 0xFF_EC_DE_5E;
long hexWords = 0xCAFE_BABE;
long maxLong = 0x7fff_ffff_ffff_ffffL;
byte nybbles = 0b0010_0101;
long bytes = 0b11010010_01101001_10010100_10010010;

You can place underscores only between digits; you cannot place underscores in the following places:

  • At the beginning or end of a number
  • Adjacent to a decimal point in a floating point literal
  • Prior to an F or L suffix
  • In positions where a string of digits is expected

The following examples demonstrate valid and invalid underscore placements (which are highlighted) in numeric literals:

复制代码
float pi1 = 3_.1415F;      // Invalid; cannot put underscores adjacent to a decimal point
float pi2 = 3._1415F;      // Invalid; cannot put underscores adjacent to a decimal point
long socialSecurityNumber1
  = 999_99_9999_L;         // Invalid; cannot put underscores prior to an L suffix

int x1 = _52;              // This is an identifier, not a numeric literal
int x2 = 5_2;              // OK (decimal literal)
int x3 = 52_;              // Invalid; cannot put underscores at the end of a literal
int x4 = 5_______2;        // OK (decimal literal)

int x5 = 0_x52;            // Invalid; cannot put underscores in the 0x radix prefix
int x6 = 0x_52;            // Invalid; cannot put underscores at the beginning of a number
int x7 = 0x5_2;            // OK (hexadecimal literal)
int x8 = 0x52_;            // Invalid; cannot put underscores at the end of a number

int x9 = 0_52;             // OK (octal literal)
int x10 = 05_2;            // OK (octal literal)
int x11 = 052_;            // Invalid; cannot put underscores at the end of a number

中文

数字文字中的下划线

在 Java SE 7 及更高版本中,任意数量的下划线字符 ( _) 可以出现在数字文字中数字之间的任何位置。例如,此功能使您能够分隔数字文字中的数字组,这可以提高代码的可读性。

例如,如果您的代码包含许多数字,则可以使用下划线字符将三组数字分隔开,类似于使用逗号或空格等标点符号作为分隔符。

以下示例显示了在数字文本中使用下划线的其他方法:

复制代码
长信用卡号 = 1234_5678_9012_3456L;
长社会保障号码 = 999_99_9999L;
浮点数 pi = 3.14_15F;
长十六进制字节 = 0xFF_EC_DE_5E;
长十六进制字= 0xCAFE_BABE;
长 maxLong = 0x7fff_ffff_ffff_ffffL;
字节nybbles = 0b0010_0101;
长字节= 0b11010010_01101001_10010100_10010010;

只能在数字之间放置下划线;不能在以下位置放置下划线:

  • 在数字的开头或结尾
  • 浮点数字面值中的小数点附近
  • F在orL后缀 之前
  • 在需要一串数字的位置

以下示例演示了数字文字中有效和无效的下划线位置(突出显示):

复制代码
浮点数 pi1 = 3_.1415F; // 无效的;不能在小数点旁边放置下划线
浮点数 pi2 = 3._1415F; // 无效的;不能在小数点旁边放置下划线
长社会保障号码1
= 999_99_9999_L; // 无效的;不能在 L 后缀之前添加下划线

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

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

int x9 = 0_52; // OK(八进制文字)
int x10 = 05_2; // OK(八进制文字)
int x11 = 052_; // 无效的;不能在数字末尾添加下划线
相关推荐
2401_858286113 分钟前
125.【C语言】数据结构之归并排序递归解法
c语言·开发语言·数据结构·算法·排序算法·归并排序
掘金-我是哪吒10 分钟前
分布式微服务系统架构第156集:JavaPlus技术文档平台日更-Java线程池使用指南
java·分布式·微服务·云原生·架构
coder_pig18 分钟前
跟🤡杰哥一起学Flutter (三十四、玩转Flutter手势✋)
前端·flutter·harmonyos
万少24 分钟前
01-自然壁纸实战教程-免费开放啦
前端
独立开阀者_FwtCoder26 分钟前
【Augment】 Augment技巧之 Rewrite Prompt(重写提示) 有神奇的魔法
前端·javascript·github
亲爱的非洲野猪36 分钟前
Kafka消息积压的多维度解决方案:超越简单扩容的完整策略
java·分布式·中间件·kafka
yuki_uix37 分钟前
AI辅助网页设计:从图片到代码的实践探索
前端
我想说一句37 分钟前
事件机制与委托:从冒泡捕获到高效编程的奇妙之旅
前端·javascript
陈随易37 分钟前
MoonBit助力前端开发,加密&性能两不误,斐波那契测试提高3-4倍
前端·后端·程序员
wfsm38 分钟前
spring事件使用
java·后端·spring