天天看點

Java 各個版本的特性一覽

個人認為下列列出來的都是版本較為突出的特性

Java  5

1.引入泛型功能(僞泛型)

2.增強循環,可以使用疊代循環,Iterator

3.支援自動裝箱和自動拆箱

4.支援類型安全的枚舉

5.支援可變參數

6.支援靜态引入

7.支援中繼資料(注解)功能

8.引入Java Instrumentation

Java 6 

1.支援腳本語言

2.引入JDBC 4.0 API

3.引入Java Compiler API

4.支援可插拔注解

Java 7 

1. 支援了switch語句以String作為條件,至此已支援4中基本類型(byte, char , short ,int),2種對象類型(枚舉,String)

2.優化增強了泛型對象類型推斷

3.支援了在一個語句塊中捕獲多種異常,既一個catch,可以|多個異常

4.支援try-with-resources文法,自動為資源類進行關閉,而無需finally進行

5.引入Java NIO2開發包,支援了AIO

6.支援了數值的二進制表示方式,比如0b1010000, 以前隻能8,10,16進制的表示

7.鑽石型文法,省略類型參數的聲明

8.支援了動态語言

Java 8

1.支援lambda表達式

2.支援集合的Stream流處理

3.支援Functional函數式接口

4.對各個類支援了很多對應的lambda增強方法

5.增強接口,支援了接口的預設和靜态的具體方法

6.支援LocalDate等時間包,以改進原有Date

7.支援Optional來改進Null值的處理

8.優化了HashMap和ConcurrentHashMap

Java 9

1.支援Java平台級子產品系統,既子產品化

2.支援了JShell,既類似node.js, python一樣的指令行工具,對待簡單的東西,可以直接指令測試

3.改進Javadoc, 使得Javadoc可以搜尋

4.支援了List.of(), Set.of(), Map.of()的方式初始化不可變集合,省略了大量代碼,文法糖

5.改進的Stream API,比如ofNullable(),dropWhile(),takeWhile()等

6.增強接口,支援了私有接口具體方法,補充了Java8預設和靜态方法的支援

7.把G1垃圾收集器作為預設的垃圾收集器,并标注CMS為過時收集器

8.引入了響應式流Reactive Streams API, 支援了響應式程式設計

9.支援了HTTP/2用戶端

Java 10

1.支援了局部變量的類型推導,支援了局部變量的var聲明

2.優化改進了G1垃圾回收器,采用并行化mark-sweep-compact算法

 Java 11

1.簡化了啟動單個源代碼檔案的方法,使得小白指令式編譯運作Java檔案變成更加簡單,java Helloworld.java 即可

2.增加支援了一個叫Epsilon的低開銷垃圾收集器

3.增加支援了一個叫ZGC(Z Garbage Collector)的可伸縮低延遲垃圾收集器, 相比G1,停頓時間有了很大的改進,穩定在10ms以下

4.重寫了HttpClient,提供了新的标準化HttpClient API, 以後不再需要引入apache包的HttpClient或是okhttp就能支援高性能的網絡5.程式設計

6.增加了對TLS 1.3的支援

7.允許了飛行記錄器進行商用下的使用

8.更好的支援了動态語言,在JVM層面增加了invokedynamic指令

9.支援了在lambda内部使用var聲明局部變量

Java 12 

Java 13