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

java 数字 下划线

JDK 1.7发行版引入了几个有用的功能,尽管其中大多数都是语法糖,但使用该功能可以大大提高可读性和代码质量。 这样的功能之一是在数字文字中引入下划线 。 从Java 7开始,您可以在Java源代码中向可读性更高的10_000_000_000写一个长数字,例如10000000000。 在数字文字中使用下划线的最重要原因之一就是避免了细微的错误,而这些细微的错误很难通过查看代码来解决。 很难注意到在10000000000和1000000000之间缺少的零或多余的零,而不是10_000_000_000和1_000_000_000。 因此,如果您正在使用Java源代码处理大量数字,请在数字中使用下划线以提高可读性 。 顺便说一句,在数字文字中使用下划线是有规则的,因为它们也是标识符中的有效字符,您只能在数字之间使用它们,恰好不能在数字文字的开头或数字文字的结尾。 在下一部分中,我们将学习如何实现数字文字中的下划线以及如何在数字文字中使用下划线。

如何在Java中实现数字下划线

就像我说的那样,它是一种语法糖,就像在切换情况下如何实现String一样,这也是在编译器的帮助下实现的。 在编译时,编译器删除这些下划线并将实际数字放入变量中。 例如10_000_000将在编译时转换为10000000。 因为CPU处理长数字串没有问题,这对他很有趣,所以我们不必理会,就是我们这个穷人,遇到处理长数字的问题。 此功能对于银行和金融领域应用程序特别有用,该应用程序处理大量资金,信用卡号,银行帐号和其他处理较长ID的域。 尽管强烈建议不要在Java文件中写入敏感数据,并且绝对不要在生产代码中这样做,但带数字的下划线使工作变得比以前容易得多。

Java中在数字中使用下划线的规则

数字整数

Java编程语言对于在数字文字中使用下划线具有严格的规则集。 如前所述,您只能在数字之间使用它们。 您不能以下划线开头或以下划线结尾。 这是更多地方,您不能在数字文字中使用下划线:

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

这是几个示例,显示了数字文字中下划线的一些有效和无效用法

float pi1 = 3_.1415F;      // Invalid; cannot put underscores adjacent (before) to a decimal point
float pi2 = 3._1415F;      // Invalid; cannot put underscores adjacent (after) to a decimal point
long socialSecurityNumber1  = 999_99_9999_L;  // Invalid; cannot put underscores prior to an L suffixint a1 = _52;              // This is an identifier, not a numeric literal, starts with underscore
int a2 = 5_2;              // OK (decimal literal)
int a3 = 52_;              // Invalid; cannot put underscores at the end of a literal
int a4 = 5_______2;        // OK (decimal literal)int a5 = 0_x52;            // Invalid; cannot put underscores in the 0x radix prefix
int a6 = 0x_52;            // Invalid; cannot put underscores at the beginning of a number
int a7 = 0x5_2;            // OK (hexadecimal literal)
int a8 = 0x52_;            // Invalid; cannot put underscores at the end of a numberint a9 = 0_52;             // OK (octal literal)
int a10 = 05_2;            // OK (octal literal)
int a11 = 052_;            // Invalid; cannot put underscores at the end of a number

这是在数字文字中使用下划线的更多示例

long creditCardNumber = 6684_5678_9012_3456L;  // Never do it on production code
long socialSecurityNumber = 333_99_9999L;      // Never, Ever do it on production code
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怎么样?

简而言之,请始终在数字中使用下划线 ,尤其是使用长数字时,应使其更具可读性。 我知道此功能仅在Java 1.7中可用,并且尚未广泛使用,但是考虑到Java 8配置文件,我希望Java 8将比Java 7更快,更广泛地被社区采用。

参考: 为什么在Javarevisited博客上使用我们的JCG合作伙伴 Javin Paul的Java SE 7数字中的下划线-数字文字中的下划线 。

翻译自: https://www.javacodegeeks.com/2014/03/why-use-underscore-in-numbers-from-java-se-7-underscore-in-numeric-literals.html

java 数字 下划线

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/342610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【渝粤教育】国家开放大学2018年秋季 0107-22T现代货币金融学 参考试题

科目编号:0133 座位号 2018-2019学年度第一学期期末考试 大学物理 试题 2018年11月 单选题(本大题共5小题,每小题4分,共计20分) 1.稳恒磁场的高斯定理表明,磁场是( )。 A. 有源场 B. 无源场 C…

Zigbee无限数据传输模块在无线个域网有什么作用?

Zigbee是一种无线技术,作为一种开放的全球标准开发,以满足低成本、低功耗无线物联网网络的独特需求。Zigbee标准在IEEE 802.15.4物理无线电规范上运行,并在2.4 GHz、900 MHz和868 MHz等未授权频段运行。 Zigbee堆栈运行的802.15.4规范于2003…

【渝粤教育】国家开放大学2018年秋季 0242-22T机械制图 参考试题

编号:0266 座位号 2018~2019学年度第一学期期末考试 设计构成试题 2019年1月 一、设计制作题(100分) 题目:自由形插接构造的留声机博物馆。 要求:以自由形插接构造的方式,设计一个留声机博物馆…

2021-10-02

亿佰特物联网通信-智慧城市的未来城市愿景 城市智慧概念现在得到广泛认识,也在很多国家和地方开始建设,目前智慧城市建设大多是处于数字化阶段,并在数字化形态下逐步融合大数据、人工智能、物联网、无线通信等技术,提高城市的管理…

工业以太网交换机:核心优点解析

工业交换机是专门为了满足灵活多变的工业应用需求而设计的工业设备,它提供一种高性价比工业以太网通讯解决方案。而其组网方式则更重点关注于环路设计,因此环网工业交换机的使用非常流行。其中,环路有单环和多环的区别,同时亦有在…

【渝粤教育】国家开放大学2018年秋季 0350-22T幼儿园课程论 参考试题

试题编号:0365 座位号 2018-2019 学年度第一学期期末考试 电子商务概论 试题 一、名词解释题: (每题5分,共20分) 1.专题讨论法: 2.社交网络营销: 访问网站: 第三方物流企业配送: …

使用JAXB时

没有多少示例可以说明这一点,但是如何在应用程序中使用JAXB可以在性能(和内存使用)方面产生巨大差异。 这个例子 在此博客文章中,我将使用一个名为Membership的示例对象,看起来像这样: 我们将使用JAXB将对…

通信电平转换指南

在我们电路设计中,常常会遇到通信电平转换的问题,在应用电平转换的措施之前还需要判断进行电平转换的必要性。 如果你是用的是3.3V器件作为输出,而5V器件作为接收,那么这种低电平输出不会损坏器件,而且大部分3.3V器件输…

【渝粤教育】国家开放大学2018年秋季 0556-21T广告摄影 参考试题

科目编号:0579 座位号: 2019-1正考期末考试 电路及磁路(2) (一) 试 题 2019年1月 1.电路中的主要物理量是电流、电压、功率和能量,它们的定义式分别是: , &#xff0c…

如何将普通交换机实现POE供电?

PoE交换机是指能够通过网线为远端受电终端提供网络供电的交换机,是PoE供电系统中比较常见的供电设备,可是,如果一个交换机没有POE功能,那么可不可以额外加一个poe供电模块经过交换机给ap供电呢?接下来就由飞畅科技的小…

物联网技术在智慧消防中的应用

一、案例背景 今天看到一个新闻,标题很是吸引眼球,《“最后一个原始部落”被烧毁背后,商业化埋下的隐患》,里面讲到云南省临沧市沧源佤族自治县勐角乡翁丁村老寨发生火灾,村寨几乎全部被烧毁。2020年,翁丁村…

【无标题】物联网安全挑战:为什么企业现在必须评估它们

企业对物联网 (IoT) 的依赖正在增长,这不仅是向用户推送服务的一种手段,而且是维持与员工、合作伙伴、承包商甚至竞争对手的联系的一种手段。但人们越来越担心,组织急于从物联网中获得回报,而没有完全理解其风险,也没有…

如何从头开始以正确的面向对象方式创建Java Web Framework

您如何用Java设计Web应用程序? 您安装了Spring,阅读了手册,创建了控制器 ,创建了一些视图,添加了一些注释 ,它就可以工作了。 如果没有Spring (Ruby中没有Ruby on Rails,PHP中没有Sy…

工业级光纤收发器使用“避坑”指南

工业级光纤收发器在使用中有很多的注意事项,往往这些注意事项经常被忽略。下面飞畅科技就整理了一些工业级光纤收发器使用“避坑”指南,大家可以仔细看看,引起重视。 使用工业级光纤收发器连接不同的设备时,必须注意使用的端口不…

物联网安全有哪些注意事项

然而,将网络边缘推向物联网及其他领域,通过显着增加犯罪分子可以利用的攻击媒介的数量和种类来侵入重要系统,从而增加了安全威胁- 它扩大了攻击面。最高奖项是存储系统中“静止”的数据以及跨网络和处理资源“运动”的数据,更不用…

【渝粤教育】国家开放大学2019年春季 0320-22T学前教育学 参考试题

科目编号:0320 座位号 2018-2019学年度第二学期期末考试 学前教育学 试题 2019年 7月 单选题(本大题共7小题,每小题4分,共计28分) 1.学前教育的基本内容是( )。 A.游戏活动 B.保育和教育活动 …

【渝粤教育】国家开放大学2018年春季 3912T★汽车底盘构造与维修 参考试题

试卷代号:3912 (中央广播电视大学)2018年春季学期“开放专科”期末考试 汽车底盘构造与维修试题 2018年7月 一、单项选择题(下列各题的备选答案中,只有一个选项是正确的,请把正确答案的序号填写在括号内。1…

通信距离与哪些因素相关?为什么模块通信距离和厂家宣传的不一样?

现如今很多无线模块厂家都会提供一些样品给客户测试使用,但有些客户拿回去测试出来的距离并不理想,远远没有达到厂商测试的距离,这是为什么呢?下面本文就介绍一下在实际应用中影响无线模块通讯距离的因素以及如何确定实际距离。 其…

【渝粤教育】国家开放大学2018年秋季 1021t劳动与社会保障法 参考试题

试卷代号:1043 国民经济核算 试题(开卷) 2019年1月 一、单项选择题(以下每小题各有四项备选答案,其中只有一项是正确的。每小题2分,共20分) 1.机构单位可以分为两类( )。 A&#xf…

工业级光纤收发器一般能正常使用多长时间?

无论是厂商还是购买商在生产、选购工业级光纤收发器的时候,重要的参考指标就是它的使用寿命。那么,工业级光纤收发器的正常使用寿命大概有多长时间呢?接下来飞畅科技就来和大家简单聊一聊工业级光纤收发器的使用寿命,一起来看看吧…