为什么Java7开始在数字中使用下划线

Vivado版本降级实操:TCL脚本重建工程与IP兼容性处理 FPGA开发中,EDA工具版本快速迭代常导致工程文件无法向下兼容。Vivado的.xpr工程文件本身不承诺向后兼容,直接打开旧版本工程往往报错或闪退,本质上需要采用工程重建而非文件转换的思路。通过解析.xpr与.srcs目录,提取器件型号、源文件列表、约束与IP配置,再利用TCL脚本在新版本中重建工程,是跨版本迁移的可靠方案。本文聚焦于版本降级过程中的关键技术点:如何编写create_project/add_files重建脚本,如何应对IP核与Block Design的版本鸿沟,以及约束文件在版本间可能存在 阅读详情


    JDK1.7的发布已经介绍了一些有用的特征,尽管大部分都是一些语法糖,但仍然极大地提高了代码的可读性和质量。其中的一个特征是介绍字面常量数字的下划线。从Java7开始,你就可以在你的Java代码里把长整型数字比如10000000000写成一个更具可读性10_000_000_000。在字面常量数字中加下划线的一个重要的原因是避免一些难以通过看代码来发现的细微的错误。对比10000000000 和1000000000,我们很难发现少了一个0或多了一个0,但对于10_000_000_000和1_000_000_000却不然。所以如果你在Java源码中要处理大数字,你可以在数字中加入下划线来提高可读性。使用的时候要注意:在字面常量数字里加下划线是有一定规则的,下划线只能在数字之间,在数字的开始或结束一定不能使用下划线。在本章节的以下部分,我们将学习如何在字面常量数字中使用下划线,以及在字面常量数字中使用它们的规则。

怎样在Java中有效的给数字使用下划线

正如我之前说的,这不过是个语法糖,非常像字符串在 switch 场景下的实现,这也是使用编译器的帮助下实现的。编译期间,编译器把这些下划线移除,并把真实的数字赋值给变量。比如在编译期间10_000_000将会被转化成10000000。既然CPU在处理长数字上毫无压力,对于我们这些可怜的在处理长数字上有困难的人类来说,就不用为它烦恼了。这个特征尤其在需要处理大数额金钱、信用卡号码、银行账号以及其它需要长账号的银行和金融领域更有用。尽管在写Java文件里写敏感信息很让人沮丧,我们应该永远不要在编码的时候这么做。但在数字中用下划线让我们的生活比以前变得更加简单了。

在Java中给数字加下划线的规则

Java编码语言对给数值型的字面值加下划线有严格的规定。如上所述,你只能在数字之间用下划线。你不能用把一个数字用下划线开头,或者已下划线结尾。这里有一些其它的不能在数值型字面值上用下划线的地方:

  • 在数字的开始或结尾
  • 对浮点型数字的小数点附件
  • F或L下标的前面
  • 该数值型字面值是字符串类型的时候

这里有一些例子,来表现哪些地方加给数字加下划线有效,哪些地方给数字加下划线无效

1
2
3
4
5
6
7
8
9
10
11
12
13
14
float pi1 = 3_.1415F; // 无效的; 不能在小数点之前有下划线
float pi2 = 3 ._1415F; // 无效的; 不能在小数点之后有下划线
long socialSecurityNumber1 = 999_99_9999_L; //无效的,不能在L下标之前加下划线
int a1 = _52; // 这是一个下划线开头的标识符,不是个数字
int a2 = 5_2; // 有效
int a3 = 52_; // 无效的,不能以下划线结尾
int a4 = 5_______2; // 有效的
int a5 = 0_x52; // 无效,不能在0x之间有下划线
int a6 = 0x_52; // 无效的,不能在数字开头有下划线
int a7 = 0x5_2; // 有效的 (16进制数字)
int a8 = 0x52_; // 无效的,不能以下划线结尾
int a9 = 0_52; // 有效的(8进制数)
int a10 = 05_2; // 有效的(8进制数)
int a11 = 052_; // 无效的,不能以下划线结尾

下面是一些在数字中用下划线的其它示例:

1
2
3
4
5
6
7
8
long creditCardNumber = 6684_5678_9012_3456L; // 在编码的时候,最好永远不要这么做
long socialSecurityNumber = 333_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;

使用下划线后,你会发现你的代码比以前可读性更强。顺便说一句,在java中应该一直用L去表示一个长整型数字。尽管用小写的l表示长整型数也是合法的,但他看起来太像1了,所以应该永远都不要用它。告诉我你能不能再 12l和121之间找出差别,我猜能找到的人不多吧。但是在 12L与121之间呢?

总之,要养成在数字中使用下划线的习惯,尤其是对长整型数来说,这样能增加它的可读性。我知道这个功能只是从Java1.7开始才有效,还没有被广泛的使用。但鉴于Java1.8的现状,我期望Java8在Java社区中传播比Java7更加迅速更加广泛。

通达信源码-主力建仓-AI投研图灵室出品 AI投研图灵室1:=3*SMA((CLOSE-LLV(LOW,75))/(HHV(HIGH,75)-LLV(LOW,75))*100,20,1)-2*SMA(SMA((CLOSE-LLV(LOW,75))/(HHV(HIGH,75)-LLV(LOW,75))*100,20,1),15,1);AI投研图灵室2W:=100-100*(HHV(HIGH,14)-CLOSE)/(HHV(HIGH,14)-LLV(LOW,14));AI投研图灵室3:=SMA(SMA(AI投研图灵室2,3,1),3,1); 阅读详情

相关推荐

Material Studio中分子动力学模拟得到密度density和溶解度参数

使用sketh工具画出全原子分子,以异辛烷为例子。

handsome213的博客 7320

Java 10_000 代表什么意思? 数字里面混夹着下划线?

Java 10_000 代表什么意思? 数字里面混夹着下划线?

默默不代表沉默 1433

用逻辑分析仪实测EM4095:125kHz RFID耳标解码的电压与脉宽玄学

本文通过逻辑分析仪实测EM4095芯片,深入解析125kHz RFID耳标解码中的电压与脉宽关联现象。揭示了供电电压对曼彻斯特编码脉宽的影响规律,并提供了一套可落地的调试方法论,包括信号链路解析、逻辑分析仪配置技巧及系统级稳定性提升方案,帮助开发者解决解码不稳定问题。

weixin_30629653的博客 329

Java数值中加下划线的作用

在看OkHttp源码的时候,看到了如下的代码: int connectTimeout = 10_000; int readTimeout = 10_000; int writeTimeout = 10_000; 一时之间以为看错了。 查了一下下划线的作用。就是为了数字可读性,就像生活中英语国家喜欢在数字中加逗号一样, 比如:1,000,000 由于逗号在代码中是保留符号。所以就是...

zjuter的专栏 2295

Go游戏服务器开发的一些思考(一):语言层面

Go是比C++更好用的高级语言使用Go作为服务器开发的主语言前,首先需要对Go语言做下定性。在接触Go前,可能给人的印象(至少是我),Go是一门脚本语言。看了 官方文档 ,才知道Go是一门高级语言。与C++相比,它有以下优势: 面向接口的编程没有C++复杂的面向对象语法,如类、继承、多态、虚函数等等。Go中只有结构与接口,从语言层面上,直接指导功能与功能间的解耦。直接且语法简单 提供语言反射机制提供

范安崇的博客 9560

13、7自由度机械臂混合逆运动学算法解析

本文介绍了一种针对7自由度机械臂的混合逆运动学算法,通过引入额外参数Φ解决冗余自由度问题,并实现了避障、避免关节超限和扩大工作空间。该方法采用解析逆运动学求解策略,克服了机械臂在奇异位姿时的配置不连续性问题。通过对比实验验证了该算法在腕部关节角度连续性和位姿可达性方面的优越性,同时结合躯干逆运动学显著扩展了机械臂的工作空间。

rgv23456789的博客 237

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

程序中的数字可以使用下划线来进行分割(_)以便于为程序提供更好的可读性。JDK 在编译的时候,将会对数字中间的下划线进行处理,替换掉下划线。

wokoone的博客 1595

第12步 支持向量机(SVM)

搭建SVM

Jet4505的博客 1051

Java 代码中看到数字中间带下划线的,如 1000_000 这种形式的数字的理解

Java7引入的新特性。分割数字增强可读性。和原来等效

u014163736的博客 334

华为OD机试 - 矩形绘制 - 数组、坐标偏移(Python/JS/C/C++ 双机位C卷 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。实现一个简单的绘图模块,绘图模块仅支持矩形的绘制和擦除。 当新绘制的矩形与已有图形重叠时,对图形取并集; 当新擦除的矩形与已有图形重叠时,对图形取差集。 给定一系列绘制和擦除操作,计算最终图形的面积。第一行为操作数N,接下来的N行格式为:d x1

学Java,找哪吒 836

毕设-MobileNetV4:给YOLOv8装上轻量化“引擎”——通用瓶颈与C2f融合的实战教程

本文介绍了一种将MobileNetV4与YOLOv8结合的目标检测模型轻量化方案。MobileNetV4通过通用瓶颈(UB)结构实现多任务适配,其核心改进包括动态卷积核、注意力机制和多路径特征聚合,显著提升特征提取能力。作者详细阐述了如何在YOLOv8框架中实现MobileNetV4的通用瓶颈模块,包括"膨胀-卷积-注意力-压缩"的流程设计,并构建完整的backbone网络。该方案通过融合MobileNetV4的轻量化优势与YOLOv8的高效检测架构,在移动设备上实现了精度与速度的良好平

FJN110的博客 505

java能下划线开头_为什么Java7开始在数字中使用下划线

JDK1.7的发布已经介绍了一些有用的特征,尽管大部分都是一些语法糖,但仍然极大地提高了代码的可读性和质量。其中的一个特征是介绍字面常量数字的下划线。从Java7开始,你就可以在你的Java代码里把长整型数字比如10000000000写成一个更具可读性10_000_000_000。在字面常量数字中加下划线的一个重要的原因是避免一些难以通过看代码来发现的细微的错误。对比10000000000和10...

weixin_39684967的博客 700

多准则决策方法体系(AHP、熵权法、随机森林、加权线性法、TOPSIS、模糊综合评价)

多准则决策方法体系的基础,是由三大赋权方法和三大评价框架构成的 “3+3” 核心模块。赋权方法聚焦于准则重要性的量化,评价框架则专注于多准则信息的综合集成,二者共同覆盖了从 “确定权重” 到 “输出结果” 的全流程决策需求。

```On Earth, Be Water, By Coding``` 522

java 英文数字下划线_为什么Java7开始在数字中使用下划线

JDK1.7的发布已经介绍了一些有用的特征,尽管大部分都是一些语法糖,但仍然极大地提高了代码的可读性和质量。其中的一个特征是介绍字面常量数字的下划线。从Java7开始,你就可以在你的Java代码里把长整型数字比如10000000000写成一个更具可读性10_000_000_000。在字面常量数字中加下划线的一个重要的原因是避免一些难以通过看代码来发现的细微的错误。对比10000000000 和10...

weixin_31992501的博客 241

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

为什么Java7开始在数字中使用下划线(Java7怎样在数字中使用下划线)

本文转载自 ImportNew,由 ImportNew - 刁 文阳 翻译自 javacodegeeks。欢迎加入Java小组。转载请参见文章末尾的要求。 JDK1.7的发布已经介绍了一些有用的特征,尽管大部分都是一些语法糖,但仍然极大地提高了代码的可读性和质量。其中的一个特征是介绍字面常量数字的下划线。从Java7开始,你就可以在你的Java代码里把长整型数字比如10000000

RisingWonderland - Blog 1459

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

a标签去掉下划线_为什么要在Java SE 7的数字中使用下划线-在数字文字中使用下划线...

a标签去掉下划线 JDK 1.7发行版引入了几个有用的功能,尽管其中大多数都是语法糖,但使用它可以大大提高可读性和代码质量。 这样的功能之一是在数字文字中引入下划线。 从Java 7开始,您可以在Java源代码中向可读性更高的10_000_000_000写一个长数字,例如10000000000。 在数字文字中使用下划线的最重要原因之一就是避免了细微的错误,而这些细微的错误很难通过查看代码来解决。...

cunhu4317的博客 151

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

数字中的下划线

JDK1.7的发布已经介绍了一些有用的特征,尽管大部分都是一些语法糖,但仍然极大地提高了代码的可读性和质量。其中的一个特征是介绍字面常量数字的下划线。从Java7开始,你就可以在你的Java代码里把长整型数字比如10000000000写成一个更具可读性10_000_000_000。在字面常量数字中加下划线的一个重要的原因是避免一些难以通过看代码来发现的细微的错误。对比10000000000 和...

lolichan的博客 1342

为什么要在Java SE 7的数字中使用下划线-在数字文字中使用下划线

JDK 1.7发行版引入了几个有用的功能,尽管其中大多数都是语法糖,但使用该功能可以大大提高可读性和代码质量。 这样的功能之一是在数字文字中引入下划线 。 从Java 7开始,您可以在Java源代码中向可读性更高的10_000_000_000写一个长数字,例如10000000000。 在数字文字中使用下划线的最重要原因之一是避免了细微的错误,而这些细微的错误很难通过查看代码来找出。 很难注意...

最佳 Java 编程 414

Java 中使用下划线分隔超大数字(干货)

Java 中下划线分隔数字 订阅原文学习更多 Java 知识 https://github.com/TheTutorials/Java Java 7 以后,数字文字中数字之间的任意位置都可以出现任何数量的下划线字符(_),通过下划线(_)你可以把数字按组进行分开。从而可以可以提高代码的可读性。 下面的例子介绍如何使用 _ 作为数字之间的分隔符 long creditCardNumber = 1234_5678_9012_3456L; long socialSecurityNumber = 999_99_

shellhub的博客 876

java数字间的下划线是怎么回事 侵立删

转自:http://www.importnew.com/12998.html   JDK1.7的发布已经介绍了一些有用的特征,尽管大部分都是一些语法糖,但仍然极大地提高了代码的可读性和质量。其中的一个特征是介绍字面常量数字的下划线。从Java7开始,你就可以在你的Java代码里把长整型数字比如10000000000写成一个更具可读性10_000_000_000。在字面常量数字中加下划线的一个重...

心神沫沫的收藏 641

Java数字字面量加下划线

从java7开始可以为数字加下划线,这些下划线可以让人更易读,Java编译器会去除这些下划线。 int a=1_0; int b=2_0; int c=a+b; 那么c输出的就是30,系统会自动除去数字中的下划线。

玩垃圾的人 1358

java 数字中下划线 详解

java 数字中下划线 详解

T_Y_F_的博客 1593

Java SE7新特性之在数值型的字面值中使用下划线

JDK1.7的发布已经介绍了一些有用的特征,尽管大部分都是一些语法糖,但仍然极大地提高了代码的可读性和质量。其中的一个特征是介绍字面常量数字的下划线。从Java7开始,你就可以在你的Java代码里把长整型数字比如10000000000写成一个更具可读性10_000_000_000。在字面常量数字中加下划线的一个重要的原因是避免一些难以通过看代码来发现的细微的错误。对比10000000000 和10

赶路人儿 1292

JDK 1.7 新特性之在数字字面量使用下划线

转自:https://blog.youkuaiyun.com/heartroll/article/details/78455045#%E5%9C%A8%E6%95%B0%E5%AD%97%E5%AD%97%E9%9D%A2%E9%87%8F%E4%BD%BF%E7%94%A8%E4%B8%8B%E5%88%92%E7%BA%BF 在数字字面量使用下划线 在JAVA SE 7和以后的版本中,下划线字符(_)...

【欢迎关注公众号:冬瓜白】 737
上一篇: Java深入学习(2)——参数传递
下一篇: The program 'ninja' can be found in the following packages: * ninja * ninja-build
wtbee
博客等级 码龄18年 19粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值