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

时间:2022-05-04
本文章向大家介绍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的发展也在越来越向人性化发展,再不影响运行效率的前提下,为其他可扩展的方面做了很多努力。