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,一经查实,立即删除!

相关文章

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

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

使用JAXB时

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

通信电平转换指南

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

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

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

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

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

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

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

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

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

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

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

红帽 jboss_红帽正式宣布发布JBoss BPM Suite 6和JBoss BRMS 6

红帽 jboss红帽公司刚刚宣布了这些期待已久的产品的全面上市 ! 要花费大量精力将社区代码转换为企业质量的软件,客户和最终用户可以在Red Hat支持的生产环境中使用这些代码。 现在是现在和潜在客户了解该产品,让合作伙伴开始使用它并学习基本…

工业交换机的几大“择机”标准,你学会了吗?

工业交换机现在是越来越普及了,很多相对较苛刻、复杂的工作环境基本都靠工业交换机来进行数据网络通信。但是,市场上形形色色的工业交换机非常多,如果企业安排你去采购一批交换机,你会选吗?就这个问题,下面…

程序员的前20个搜索和排序算法面试问题

大家好,如果您正在准备编程工作面试或正在寻找新工作,那么您知道这不是一个容易的过程。 在您职业的任何阶段,您都必须幸运地接到电话并进行第一轮面试,但是在初学者方面,当您寻找第一份工作时就更加困难。 这就是为什…

工业交换机性能中的“自适应”该如何理解?

工业交换机诸多性能指标中,我们常常看见有“自适应”这个指标。它到底是什么意思呢?接下来飞畅科技就来给大家详细讲解一下,一起来看看吧! 自适应也叫自动匹配、自协商,以太网技术发展到100M速率以后,出现…

【无线lora模块星型组网】lora无线模块专利技术 跳频扩频 支持200节点并发

E70 (433NW30S)采用星型组网模块,工作在433MHz频段,模块集协调器、终端为一体,具有长距离、高速率两种传输模式,一个协调器支持多达200个节点与其通讯,所有操作配置采用行业标准AT指令,极大简化用户操作&am…

控制器局域网can总线

很多的司机朋友以及工控圈的朋友都有听到过“CAN总线”一词,今天我们就来一起看一下CAN总线为什么这么火? CAN总线,也叫做控制器局域网总线(Controller Area Network),是一种用于实时应用的串行通讯协议总…

交换机多少钱一个?影响工业交换机价格的因素?

工业交换机,即应用在工业领域的交换机。它的性能和各个安全指标要比普通(商业)交换机要求更稳定一些。因此,工业交换机的价格要比一般的交换机要稍贵一些。那一般工业交换机多少钱一个呢?是不是每个厂家的交换机价格都…

[渝粤教育] Huazhong University of Science and Technology Analog Electronics Technique 参考 资料

教育 -Analog Electronics Technique-章节资料考试资料-Huazhong University of Science and Technology【】 Test questions for The Ideal Operational Amplifier 1、【单选题】The two input terminals of an operational amplifier are labeled as: A、high and low B、pos…

【NBIoT无线模块DTU数传电台】串口服务器RS232/RS485端口工业路由信号传输

E840-DTU (NB-02)是为实现串口设备与网络服务器,通过NB网络相互传输数据而开发的产品,通过简单的AT指令进行设置,即可轻松使用本产品实现串口到网络的双向数据透明传输。 基本功能: 通过无线方式传输数字信号的高性能无线收发装…

[渝粤教育] Nanjing University of Aeronautics and Astronautics Grey Data Analysis 参考 资料

教育 -Grey Data Analysis-章节资料考试资料-Nanjing University of Aeronautics and Astronautics【】 Chapter 1 Concept and basic principle of grey system 1、【单选题】The research object of gray system theory is: A、A. Clear extension, clear connota…

工业级光纤收发器的“附加属性“功能介绍

工业级光纤收发器作为光电信号转换设备,除了其设计本身的功能外,还具有其他很多的拓展功能。今天飞畅科技的小编就来为大家简单介绍一下工业级光纤收发器的”附加属性“功能,一起来看看吧! 工业级光纤收发器在数据传输上打破了以…

串口服务器E810-DTU实现以太网口与RS232数据透明传输

E810-DTU-V1.0是一款232转以太网的单串口服务器,实现了RJ45网口与RS232之间的数据透明传输。 模块搭载M0系列32位处理器,运行速率快,效率高。具备自适应网络速率(最高支持100M全双工)、TCP Server、TCP Client、UDP Server、UDP Client四种通…