25.数字型字面量中的下划线

一灰灰blogJava编程技巧JDK编程技巧约 512 字大约 2 分钟

实战25: 数字型字面量中的下划线

不知道有没有小伙伴看过下面这种写法,不用质疑,它没有语法错误;再很多开源的框架中可以看到类似的写法;这种再字面量中添加下划线的方式,是一种小却使用的编程小技巧,推荐给CURD开发者

long price = 1_000_123L;

1. Java7新特性之数字中使用下划线

为了直观性而言,在大数之间,加上下划线用于肉眼区分,下面实例小结下用法

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;

简单来说,就是在数中间,插上下划线,用于划分段落

2. 小结

再字面量中添加下划线,主要用于分割大数,方便阅读,重点注意:

  • 不能在小数点正前后添加
  • 不要在L/D/F等数据类型标识的正前方添加
  • 不能作为数字开头,也不能作为结尾
  • 不要往进制修饰符中间或后面添加
Loading...