jdk1.7新特性详解

jdk1.7新特性详解开发期间略知jdk1.7的一些特性,没有真正的一个一个得展开研究,而是需要说明再去查,导致最整个新特性不是特别的清楚,这种情况以后得需要改变了,否则就会变成代码的奴隶。现在正好有时间可以细细的研究研究了。文章主要参照oracle jdk1.7的官方地址:https://docs.oracle.com/javase/7/docs/technotes/guides/langu
摘要由CSDN通过智能技术生成

jdk1.7新特性详解

开发期间略知jdk1.7的一些特性,没有真正的一个一个得展开研究,而是需要说明再去查,导致最整个新特性不是特别的清楚,这种情况以后得需要改变了,否则就会变成代码的奴隶。现在正好有时间可以细细的研究研究了。文章主要参照oracle jdk1.7的官方地址:https://docs.oracle.com/javase/7/docs/technotes/guides/language/enhancements.html#javase7

二进制字面量

在JAVA SE 7,整数类型例如(byte,short,int,long)能够用二进制来表示了。通过在数字前面加入0b或者0B来标示一个二进制的字面量,看下面的例子:

//一个8位'byte'值:
byte aByte = (byte)0b00100001;

//一个16位'short'值:
short aShort = (short)0b1010000101000101;

//一些32位'int'值:
int anInt1 = 0b10100001010001011010000101000101;
int anInt2 = 0b101;
int anInt3 = 0B101; // B可以是大写也可以是小写.

//一个64位的'long'值. 注意"L"结尾:
long aLong = 0b1010000101000101101000010100010110100001010001011010000101000101L;

二进制字面量可以使数据之间的关系比十六进制或八进制更明显。例如,下面数组的每一个连续数组都是通过一个位循环的。

public static final int[] phases = {
  0b00110001,
  0b01100010,
  0b11000100,
  0b10001001,
  0b00010011,
  0b00100110,
  0b01001100,
  0b10011000
}

在16进制中,数字之间的关系就不是那么的明显了:

public static final int[] phases = {
    0x31, 0x62, 0xC4, 0x89, 0x13, 0x26, 0x4C, 0x98
}

在数字字面量使用下划线

在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后缀之前
  • 在预期数字串的位置
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值