JDK1.7新特性(1):Switch和数字

Switch

jdk1.7的switch语句增加了对字符串类型的支持。其实现的原理是通过字符串的hash值来比较的,代码示例如下:

1 String name = "KiDe";
2 // Welcome the owner!
3 switch (name) {
4     case "KiDe":
5         System.out.println("Welcome the owner!");
6         break;
7     default:
8     System.out.println("Welcome the other!");
9 }        

不过需要注意的是,即使新增了对字符串的支持。但是如果该字符串有特殊含义且多次在代码中被使用,还是应该使用enum类型来代替直接的字符串switch。

数字

jdk1.7之后对数字的改动主要包括两方面,

  一是对二进制字面常量的支持,同数字前面加0表示八进制,加0X表示16进制,前面加0B表示二进制,代码示例如下:

1 // 支持二进制字面常量(以0b或者0B开始)
2 System.out.println(0b00011);    // 3
3 System.out.println(0B10011);    // 19

  二是出于对数字易读性的考虑,支持数字之间以"_"分隔,而不影响数字原来的值。出于对编译器实现简单的考虑,下划线的添加地方也很讲究,不支持将下划线添加在数字开头或者末尾,也不支持将下划线添加在数字的小数部分开头。这样编译器在处理的时候,只需将下划线抹掉,就能得到原来的数字。

1 // 数字之间支持以下划线来区分,其中的下划线可以是一个也可以时多个。
2 int a = 1_23_2__34;
3 float b = 1_112.1__1_2f;
4 System.out.println(a);        // 123234
5 System.out.println(b);        // 1112.112

  通过这个改动其实可以发现,java的发展也在越来越向人性化发展,再不影响运行效率的前提下,为其他可扩展的方面做了很多努力。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

使用纯粹的JS构建 Web Component

问题:我怎么才能收到你们公众号平台的推送文章呢? Web Component 出现有一阵子了。 Google 费了很大力气去推动它更广泛的应用,但是除 Oper...

1986
来自专栏用户画像

H5新增的嵌入多媒体元素与交互性元素

新增的嵌入多媒体元素有video和audio元素,分别用来插入视频和声音的。值得注意的是可以再开始标签和结束标签之间放置文本内容,这样旧版本的浏览器就可以显示出...

562
来自专栏前端小叙

页面加载中jquery逐渐消失效果实现

为了获得更好的用户体验,现在大多数网页都会在页面中加一个加载中效果,这里实现一个加载中逐渐消失的效果,以至于看上去不那么生硬。 html: <div id="l...

3609
来自专栏沈唁志

在PHP中strpos函数的正确使用方式

1433
来自专栏owent

C++ 新特性学习(二) -- Array、Tuple和Hash库

这回的两个库没怎么用过,这里的记录就用VC++写了,使用G++和BOOST的时候和智能指针类似。

731
来自专栏彭湖湾的编程世界

redux-form的学习笔记二--实现表单的同步验证

(注:这篇博客参考自redux-form的官方英文文档)左转http://redux-form.com/6.5.0/examples/syncValidatio...

2575
来自专栏LeoXu的博客

[翻译]VelocityLayoutServlet (VLS) 综观

这一个基本的VelocityViewServlet的一个扩展。它为基于Velocity Tools 的工程项目提供了一个简单的布局控制和定制的错误显示屏幕。Ve...

571
来自专栏企鹅号快讯

如何打造属于自己的Javascript武器库

前言 代码写的久了,就会发现很多时候都是在写一些重复的东西,这个时候就应该要考虑到提高工作效率了,比如对常用方法的封装,例如日期格式化,浏览器类型判断等。 今天...

3779
来自专栏互联网杂技

JavaScript中的各种模块化规范

前端发展到今天,已经有不少模块化的方案,比如AMD、CMD、UMD、CommonJS等,当然了,还有es6带来的模块系统,这些模块化规范的核心价值都是让 Jav...

3539
来自专栏喵了个咪的博客空间

zephir-(4)基本语法

#zephir-基本语法# ? ##前言## 先在这里感谢各位zephir开源技术提供者 每个语言都有它的语法,每个语言都有他的结构,那么今天就来和小编来讨论z...

2676

扫码关注云+社区