1. 程式人生 > 其它 >JDK1.7新特性(1):Switch和數字

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的發展也在越來越向人性化發展,再不影響執行效率的前提下,為其他可擴充套件的方面做了很多努力。