最近,新版本的JDK又雙叒叕發佈了,目前已經JDK 14 了,從2017年8月份開始,JDK的更新頻率變成了每半年一次,將固定在每年的3月份和9月份發佈新版本。
按照這個頻率,過不了多久,JDK 20 就要推出了…
最早的JDK發佈於1996年,相信比很多讀者的年齡都要小,其發佈頻次如下:
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 11。
之所以大多數人選擇Java 8和Java 11 ,是因為這兩個版本都是目前官方宣佈長期支持的版本。
目前的Java 8和 Java 11 在2023年之前都會得到官方的持續支持。而剛剛在3月份發佈的JDK 14,在今年的九月份之後就不再維護更新了。其他在JDK 8 之後發佈的非LTS的版本的更新維護時間就是本年左右。
在JDK的官網上可以看到JDK 8的更新記錄,最近一次是2020年1月14日。
另外,在兩個長期支持的版本 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呢?,大家留言探討下哦~~~~
原文鏈接:https://mp.weixin.qq.com/s/NEfqPXrcq6O1p7RLf9LWCw
閱讀更多 Java技術虎 的文章