新版任你發,我用Java 8!

最近,新版本的JDK又雙叒叕發佈了,目前已經JDK 14 了,從2017年8月份開始,JDK的更新頻率變成了每半年一次,將固定在每年的3月份和9月份發佈新版本。

按照這個頻率,過不了多久,JDK 20 就要推出了…

最早的JDK發佈於1996年,相信比很多讀者的年齡都要小,其發佈頻次如下:


新版任你發,我用Java 8!

Java 8 與 Java 11 為當前提供支持的LTS(長期支持)版本;

2018年9月,隨著 Java 11 的發佈,Java 10 自當日起不再被支持。

Oracle 於 2019 年 1 月前為商業用途中的 Java 8 長期支持,而針對非商用的更新將繼續提供,直至 2020 年 12 月;

此外,AdoptOpenJDK 也為 Java 8 提供免費更新。

針對 Java 11 的長期支持將不再由 Oracle 提供,而是改由 OpenJDK 社區的 AdoptOpenJDK 提供。

各版本重大更新內容

從Java第一個版本發佈到現在,已經有24年了,24年中共發佈了14個版本,那麼,。讓我們細數一下各個版本中增加的主要特性有哪些。

JDK 1.0

第一個版本於1996年1月23日發佈,叫做為Oak。而真正第一個穩定的版本JDK 1.0.2,被稱作Java 1。

JDK 1.1

  • 內部類
  • JDBC
  • JavaBeans

J2SE 1.2

  • Java集合框架
  • Swing圖像化API
  • JIT編譯器

J2SE 1.3

  • HotSpot JVM
  • JNDI
  • JPDA
  • 用於實現動態代理的類

J2SE 1.4

  • assert 關鍵字
  • 異常鏈
  • NIO

J2SE 5.0

  • 泛型
  • 元數據
  • 自動封箱、自動拆箱
  • 枚舉
  • 可變參數函數
  • 強化for each循環
  • Swing
  • java.util.concurrent包

Java SE 6

  • 支持JDBC 4.0

Java SE 7

  • 在switch中使用字符串類型
  • try-with-resources
  • 新的invokedynamic字節碼指令
  • 允許在數值字面值中加入下劃線

Java SE 8

  • Lambda表達式
  • Nashorn
  • 移除了虛擬機內存管理中的永久代
  • 新的日期和時間 API

Java SE 9

  • Jigsaw項目中將JDK模塊化
  • jshell
  • jlink

Java SE 10

  • 局部變量類型推斷
  • 適用於G1的多線程完全垃圾回收

Java SE 11

  • ZGC
  • Epsilon

Java SE 12

  • Shenandoah
  • Switch 表達式(預覽)

Java SE 13

  • Text Blocks(預覽階段)
  • 動態 CDS 歸檔

Java SE 14

  • Records
  • Switch 表達式
  • 友好的空指針異常
  • 打包工具

新版任你發,我用Java 8

從Java 8推出至今,已經很快的發展到了Java 14了,很多人做過調查,最終結果顯示都是Java 8的使用者最多。

隨便放兩個統計結果大家感受下:


新版任你發,我用Java 8!


新版任你發,我用Java 8!

從這些統計中,可以看到使用的最多的還是Java 8,其次就是Java 11。

之所以大多數人選擇Java 8和Java 11 ,是因為這兩個版本都是目前官方宣佈長期支持的版本。

目前的Java 8和 Java 11 在2023年之前都會得到官方的持續支持。而剛剛在3月份發佈的JDK 14,在今年的九月份之後就不再維護更新了。其他在JDK 8 之後發佈的非LTS的版本的更新維護時間就是本年左右。

在JDK的官網上可以看到JDK 8的更新記錄,最近一次是2020年1月14日。

新版任你發,我用Java 8!


另外,在兩個長期支持的版本 JDK 8 和 JDK 11中,相比之下肯定是JDK 11 的新特性更多一些,但是並沒有真的非升不可的新特性。

一方面在JDK 8 是在JDK 7 推出三年後才推出,其中包含了很多重要的語言特性和技術升級,比如函數式編程,還有一些小改動如HashMap引入紅黑樹等。

所以JDK 8使用者比較多,另外一方面,JDK 的升級是一項耗時耗力的大工程,如果沒有足夠多的好處,很多公司和組織是不願意大範圍升級的。

所以,可以預見,在接下來的很長一段時間中,JDK 8 將仍然是主流版本。不過值得一提的是,本次發佈的JDK 14 確實增加了幾個可圈可點的新特性。

最後,新版本層出不窮,到底要不要升級?

作者認為,如果生產環境中使用的是Java 8,目前完全沒必要升級,如果要升級的話,首選Java 11;但是,作為開發者,倒是自己可以本機安裝新版的JDK,學習並瞭解下新特性。

SO,新版任你發,我用Java 8。

所以你正在使用的是哪個版本的JDK呢?

新版任你發,我用Java 8!


分享到:


相關文章: