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 条评论
登录 后参与评论

相关文章

来自专栏吴伟祥

正则表达式30分钟入门教程 转

学习正则表达式的最好方法是从例子开始,理解例子之后再自己对例子进行修改,实验。下面给出了不少简单的例子,并对它们作了详细的说明。

622
来自专栏鸿的学习笔记

python的抽象基类

与jvm上的语言不一样,python的语言没有interface关键字,而且除了抽象基类,每个类都有相应的接口:类实现或继承的公开属性(方法或数据类型)

481
来自专栏java学习

重要通知!小编出新的Java练习题已经公布答案了!!!

一、选择题和问答题 1、在一个java原文件中,import, class, package语句的顺序是(D)。 A. import classpackage ...

3398
来自专栏前端杂货铺

JS的内建函数reduce

@(js) reduce函数,是ECMAScript5规范中出现的数组方法。在平时的工作中,相信大家使用的场景并不多,一般而言,可以通过reduce方法实现的逻...

3397
来自专栏猿人谷

对称字符串的最大长度

题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。 思路...

2288
来自专栏有趣的Python

1-Java面向对象-面向对象

通过前面的学习我们对于java的语法结构有了一定的认识,掌握了分支结构,循环结构等常用的程序逻辑,也能运用这些知识解决一些简单问题。

331
来自专栏蘑菇先生的技术笔记

clojure基础入门(一)

953
来自专栏专知

【专知-关关的刷题日记17】Leetcode 268. Missing Number

题目 Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find...

33212
来自专栏蘑菇先生的技术笔记

clojure基础入门(一)

2474
来自专栏蓝天

sed 学习笔记(转)

声明:这些代码只是为了学习和理解sed命令而为之,并不代表问题的唯一解或最佳解,希望各位拍砖

632

扫描关注云+社区