JDK 7 中的语法增强 -- (1) 二进制字面常量

JDK 7 预览版已出,当然到实际的使用还有段时间,包括 IDE 的和各大主要的应用服务器的升级,及 JDK 7 本身的稳定尚须时日,但我们还是有必须瞧瞧新版 JDK 带来了哪些语法增加。

我们没有盼到闭包,相对于 JDK 5 的语法增强,JDK 7 的动作还较小,大约 8 个,这里介绍第一个 二进制字面常量。

1)二进制字面常量 -- 任何整数类型(byte, short, int 和 long) 声明时可用二进制的形式,即 01 串,只要数字前加上 0b 或 0B 即行。

二进制字面常量的好处,我能深刻体会到的就是在处理网络协议时,再也不需要声明一个 int i = 24, 然后发送出去,而是在发送前看到源代码 int i = 0b11000 就能知道接受时每一位是 1 还是 0,可以对照协议规范一位一位的填。再有一点就是正负数得看首位是 1 还是 0 了,1 为负,注意,即使用加了 0b,默认也是整形,所以需要显式 (byte) 等来转型。

相比其他进制而言,二进制的字面常量让数据之间的关系更清晰. 像下面,排的整整齐,哪个位置上相同或有差异一目了然。其实这也是方便了下文要讲到的按位运算:

下面那样 16 进制表示法,要进行按位运算可就得用科学型计算器了,基于 16 进制的简短,一抵四,还是常用它来表示二进制数值的:

二进制常量让你参照规范文档来做实现更容易,前面提到的网络协议了, 机器指令什么的, 像下面模拟了一个 8 位微处理器:

你可以用二进制常量来增强关系运算的可读性,列模式:

详情可见原文:http://download.java.net/jdk7/docs/technotes/guides/language/enhancements.html

本文链接 https://yanbin.blog/jdk-7-enhance-binary-literals/, 来自 隔叶黄莺 Yanbin Blog

[版权声明] Creative Commons License 本文采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。

Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments