JDK 1.5 - 1.8 各版本的新特性總結

1.6  使用Compiler API函數

    JDK6 的Compiler API(JSR 199)去動態編譯Java源文件,Compiler API結合反射功能就能夠實現動態的產生Java代碼並編譯執行這些代碼,有點動態語言的特徵。spa

    Compiler API經過一套易用的標準的API提供了更加豐富的方式去作動態編譯,並且是跨平臺的。code

 

1.7orm

1.switch中能夠使用字串對象

    

2."<>"這個玩意兒的運用

ListtempList = new ArrayList<>(); 即泛型實例化類型自動推斷。接口

 

3.自定義自動關閉類

 

interface AutoCloseable
只要實現該接口,在該類對象銷燬時自動調用close方法,你能夠在close方法關閉你想關閉的資源資源

 

4.對Java集合(Collections)的加強支持

  1. List<String> list=["item"]; //向List集合中添加元素it

  2.      String item=list[0]; //從List集合中獲取元素io

  3.      Set<String> set={"item"}; //向Set集合對象中添加元素編譯

  4.      Map<String,Integer> map={"key":1}; //向Map集合中添加對象

  5.      int value=map["key"]; //從Map集合中獲取對象

 

5.數值可加下劃線

int one_million = 1_000_000;

6.支持二進制文字

int binary = 0b1001_1001;

7.在try catch異常撲捉中,一個catch能夠寫多個異常類型,用"|"隔開

try {

......

} catch(ClassNotFoundException|SQLException ex) {

  ex.printStackTrace();

}

8.jdk7以前,你必須用try{}finally{}在try內使用資源,在finally中關閉資源,無論try中的代碼是否正常退出或者異常退出。jdk7以後,你能夠沒必要要寫finally語句來關閉資源,只要你在try()的括號內部定義要使用的資源

  1. public class FileCopyJDK7 {

  2.   public static void main(String[] args) {

  3.      try (BufferedReader in  = new BufferedReader(new FileReader("in.txt"));

  4.           BufferedWriter out = new BufferedWriter(new FileWriter("out.txt"))) {

  5.         int charRead;

  6.         while ((charRead = in.read()) != -1) {

  7.            System.out.printf("%c ", (char)charRead);

  8.            out.write(charRead);

  9.         }

  10.      } catch (IOException ex) {

  11.         ex.printStackTrace();

  12.      }

  13.   }

  14. }

 

1.8

1.接口的默認方法

  1. interface Formula {

  2.    double calculate(int a);

  3.    default double sqrt(int a) {

  4.        return Math.sqrt(a);

  5.    }

  6. }

 

2.Lambda 表達式

3.函數式接口

.....

https://mp.weixin.qq.com/s/-mG6XsXLCXTnL-efV3mX4Q

相關文章
相關標籤/搜索