Java 7 語法新特性

1、二進制數字表達方式

 本來整數(以60爲例)可以用十進制(60)、八進制(074)、十六進制(0x3c)表示,惟獨不能用二進制表示(111100),Java 7 彌補了這點。java

1 public class BinaryInteger
2 {
3     public static void main(String[] args) {
4         int a = 0b111100;       // 以 0b 開頭
5         System.out.println(a);    //輸出60
6     }
7 }

2、使用下劃線對數字進行分隔表達

本來表示一個很長的數字時,會看的眼花繚亂(好比1234567),Java 7 容許在數字間用下劃線分隔(1_234_567),爲了看起來更清晰。函數

1 public class UnderscoreNumber
2 {
3     public static void main(String[] args) {
4         int a = 1_000_000;    //用下劃線分隔整數,爲了更清晰
5         System.out.println(a);
6     }
7 }

3、switch 語句支持字符串變量

本來 Switch 只支持:int、byte、char、short,如今也支持 String 了。spa

 1 public class Switch01
 2 {
 3     public static void main(String[] args) {
 4         String str = "B";
 5         switch(str)
 6         {
 7             case "A":System.out.println("A");break;
 8             case "B":System.out.println("B");break;
 9             case "C":System.out.println("C");break;
10             default :System.out.println("default");
11         }
12     }
13 }

4、泛型的「菱形」語法

本來建立一個帶泛型的對象(好比HashMap)時:
  • Map<String,String> map = new HashMap<String,String>();
不少人就會抱怨:「爲何前面聲明瞭,後面還要聲明!」。Java 7 解決了這點,聲明方式以下:
  • Map<String,String> map = new HashMap<>();

5、自動關閉資源的try

本來咱們須要在 finally 中關閉資源,如今 Java 7 提供了一種更方便的方法,可以自動關閉資源:
  • 將try中會打開的資源(這些資源必須實現Closeable或AutoCloseable)聲明在圓括號內。
 1 import java.io.*;
 2 public class Try01
 3 {
 4     public static void main(String[] args) {
 5         try(
 6             FileInputStream fin = new FileInputStream("1.txt");    // FileNotFoundException,SecurityException
 7         )
 8         {
 9             fin.read();    //拋 IOException
10         }
11         catch(IOException e)    //多異常捕捉
12         {
13             e.printStackTrace();
14         }
15     }
16 }

6、多異常捕捉

若是在try語句塊中可能會拋出 IOException 、NumberFormatException 異常,由於他們是檢驗異常,所以必須捕捉或拋出。若是咱們捕捉他且處理這兩個異常的方法都是e.printStackTrace(),則:code

 1 try
 2 {
 3 }
 4 catch(IOException e)
 5 {
 6     e.printStackTrace();    
 7 }
 8 catch(NumberFormatException e)
 9 {
10     e.printStackTrace();    
11 }

Java 7 可以在catch中同時聲明多個異常,方法以下:orm

1 try
2 {
3 }
4 catch(IOException | NumberFormatException  e)
5 {
6     e.printStackTrace();    
7 }

7、加強型throws聲明

本來若是在try中拋出 IOException,以catch(Exception e)捕捉,且在catch語句塊內再次拋出這個異常,則須要在函數聲明處:throws Exception,而不能 throws IOException,由於Java編譯器不知道變量e所指向的真實對象,而Java7修正了這點。對象

 1 import java.io.*;
 2 public class Throws01
 3 {
 4     public static void main(String[] args) throws FileNotFoundException{
 5         try
 6         {
 7             FileInputStream fin = new FileInputStream("1.txt");
 8         }
 9         catch(Exception e)    //Exception e = new FileNotFoundException();
10         {
11             throw e;        
12         }
13     }
14 }
相關文章
相關標籤/搜索