关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » JAVA »为什么Java7开始在数字中使用下划线

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

    2014-09-13 00:00:00 出处:ImportNew
    分享

    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下标的前面 该数值型字面值是字符串类型的时候

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

    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_; // 无效的,不能以下划线结尾

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

    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更加迅速更加广泛。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    正版 Windows 11产品密钥怎么查找/查看?

    还有3个月,微软将停止 Windows 10 的更新

    Windows 10 终止支持后,企业为何要立即升级?

    Windows 10 将于 2025年10 月终止技术支持,建议迁移到 Windows 11

    Windows 12 发布推迟,微软正全力筹备Windows 11 25H2更新

    Linux 退出 mail的命令是什么

    Linux 提醒 No space left on device,但我的空间看起来还有不少空余呢

    hiberfil.sys文件可以删除吗?了解该文件并手把手教你删除C盘的hiberfil.sys文件

    Window 10和 Windows 11哪个好?答案是:看你自己的需求

    盗版软件成公司里的“隐形炸弹”?老板们的“法务噩梦” 有救了!

    IT头条

    液冷服务器概念股走强,博汇、润泽等液冷概念股票大涨

    01:17

    亚太地区的 AI 驱动型医疗保健:2025 年及以后的下一步是什么?

    16:30

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    严重缩水!NVIDIA将推中国特供RTX 5090 DD:只剩24GB显存

    00:17

    技术热点

    在windows 7桌面右键菜单上添加直接卸载USB设备的快捷菜单选项

    12个Java长久占居主要地位的原因

    SQL Server创建数据库的命令

    SQL Server 带列名导出到excel的实际操作

    MySQL字符串连接函数repeat()

    使用SQL Server日志转移实现高可用性

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。