文档章节

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

JackieYeah
 JackieYeah
发布于 2016/04/11 20:01
字数 491
阅读 14
收藏 0

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

在Java SE 7及后续版本中, 数值型的字面值中的数字之间可以出现任何数量的下划线。例如,这个特性可以让你将数值型的字面值中的数字分隔成组,这样可以提高代码的可读性。

比如, 如果你的代码包含有许多位的数字, 你可以使用下划线将这些数字分成三组, 和使用标点符号(逗号或者空格)作为分隔符一样。

下面的例子展示了在数值型的字面值中可以使用下划线的其它的一些方式:

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;

你只能将下划线置于数字之间; 以下地方不能放置下划线:

  • 数字的开头或结尾
  • 浮点数中靠近小数点的位置
  • F 或 L  后缀之前
  • 期望放置一串数字的地方

下面的例子展示了数值型的字面值中有效和无效的下划线位置 (高亮的) :

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

本文翻译自Oracle官方文档http://docs.oracle.com/javase/7/docs/technotes/guides/language/underscores-literals.html,如有不正确指出,敬请指正,谢谢!

© 著作权归作者所有

JackieYeah
粉丝 45
博文 70
码字总数 90004
作品 0
武汉
程序员
私信 提问
2-Java基础语法-常量与变量

常量与变量 主要内容: 标识符 关键字 变量 数据类型 类型转换 常量 标识符 我们所认识的标识符: 类的名字,每一个字母是字符。 数字不能作为标识符的开头,标识符中间不能有空格。 标识符的命...

天涯明月笙
2018/07/30
0
0
《Kotlin 程序设计》第三章 Kotlin 类型系统

第三章 Kotlin 类型系统 正式上架:《Kotlin极简教程》Official on shelves: Kotlin Programming minimalist tutorial 京东JD:https://item.jd.com/12181725.html 天猫Tmall:https://detai......

程序员诗人
2017/05/29
0
0
Java面试题系列(2):Java8数字字面值常量新特性

Java8对数值字面常量增加了一些新特性。 在java SE 7以后,任何数量的下划线字符()可以出现在任何地方之间的数字数值文字。这个特性使得将数值型的字面值输入更加方便,可以提高代码的可读...

博为峰教研组
2016/12/26
76
1
Learn Java - Chapter 1 变量(Variables)-基本类型

java语言定义的变量包含一下四种类型 实例变量(Instance Variables),非静态变量,在Class中声明的field,未使用static声明; 类变量(Class Variables ),静态变量,在Class中使用stati...

Hassan
2015/06/01
198
0
Java 5 、6、 7中新特性

JDK5新特性(与1.4相比)【转】 1 循环 for (type variable : array){ body} for (type variable : arrayList){body} 而1.4必须是: for (int i = 0; i < array.length; i++){ type variabl......

thinkyoung
2014/10/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx反向代理+负载均衡+服务器宕机解决办法

反向代理 作用:保证系统安全,不暴露服务器IP,利用nginx服务器,利用内网ip进行访问,避免出现攻击服务器的情况 启动本地tomact,127.0.0.1:8080可以访问到tomcat管理页面 效果:通过 bbs....

Jack088
8分钟前
1
0
返回IEnumerable 与IQueryable相比 [关闭]

返回IQueryable<T>与IEnumerable<T>之间有什么区别? IQueryable<Customer> custs = from c in db.Customerswhere c.City == "<City>"select c;IEnumerable<Customer> custs = from c i......

技术盛宴
15分钟前
2
0
开放下载 | 《Knative 云原生应用开发指南》开启云原生时代 Serverless 之门

点击下载《Knative 云原生应用开发指南》 自 2018 年 Knative 项目开源后,就得到了广大开发者的密切关注。Knative 在 Kubernetes 之上提供了一套完整的应用 Serverless 编排服务,让应用开发...

阿里巴巴云原生
19分钟前
2
0
解密淘宝推荐实战,打造 “比你还懂你” 的个性化APP

手淘推荐简介 手淘推荐的快速发展源于2014年阿里“All in 无线”战略的提出。在无线时代,手机屏幕变小,用户无法同时浏览多个视窗,交互变得困难,在这样的情况下,手淘借助个性化推荐来提升...

阿里云官方博客
21分钟前
2
0
内核程序中进程的pid,handle,eprocess之间相互转换的方法

在内核程序开发中,我们常常需要取得某进程的pid或句柄,或者需要检索进程的eprocess结构,很多API函数需要的参数也不同,所以掌握pid<->handle<->eprocess相互转换的方法会大大提高我们的开...

simpower
23分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部