美團面試:你了解JDK版本相關特性嗎?結果令人尷尬!
關于版本意識,尤其是初學者,很少有人會關注(很多三五年了,照樣沒怎么關注)。
為什么不關注呢?因為他們關注都是功能點或者知識點。
后來,逐漸的,一部分人在開發中就會遇到各種各樣的問題,于是就開始關注版本了,而另外一部分人完全就是為了應付面試。
接下來,我們就來聊聊JDK版本和相關特性。
JDK版本變更歷史
下面我呢來整體預覽一下JDK版本變更情況:
JDK版本 | 發布時間 |
---|---|
1.0 | 1996-01-23 |
1.1 | 1997-02-19 |
1.2 | 1998-12-04 |
1.3 | 2000-05-08 |
1.4.0 | 2002-02-13 |
Java SE 5.0 / 1.5 |
2004-09-30 |
Java SE 6.0 / 1.6 |
2006-04 |
Java SE 7.0 / 1.7 |
2011-07-28 |
Java SE 8.0 |
2014-03-18 |
Java SE 9.0 |
2017-09-21 |
Java SE 10.0 |
2018-03-21 |
Java SE 11.0 |
2018-09-25 |
Java SE 12.0 |
2019-02-07 |
Java SE 13.0 |
2019-09-26 |
Java SE 14.0 |
2020-03-17 |
Java SE 15.0 |
2020-09-15 |
Java 8發布于2014年3月14號,從Java 8開始開發代號已經棄用了,所以從Java 8之后已經沒有官方的開發代號了。Java 8u201/202是最后一個免費的 Oracle JDK 8版本,Oracle于 2019-01-15 停止免費商用更新。
很多人,你的是不是年齡還沒有JDK大?羨慕
JDK版本功能增強
- JDK1.0:初代版本,純解釋運行,使用外掛JIT,性能比較差,運行速度慢。
- JDK1.1:JDBC(Java DataBase Connectivity)、支持內部類、RMI、反射、Java Bean。
- JDK1.2:集合框架 、JIT 、JFC、Java插件 、JDBC中引入可滾動結果集 、Applet中添加聲音支持。
- JDK1.3:Java Sound API、jar文件索引、對Java的各個方面都做了大量優化和增強 。
- JDK1.4 :正則表達式,異常鏈,NIO,日志類,XML解析器,XLST轉換器。
- JDK1.5:自動裝箱、泛型、動態注解、枚舉、可變長參數、遍歷循環。
- JDK1.6:提供動態語言支持、提供編譯API和衛星HTTP服務器API,改進JVM的鎖,同步垃圾回收,類加載。
- JDK1.7:提供GI收集器、加強對非Java語言的調用支持(JSR-292,升級類加載架構)。
- JDK8 :Lambda 表達式、方法引用、默認方法、新工具、Stream API、Date Time API 、Optional類、Nashorn,JavaScript 引擎。
- JDK9:1、集合加強;2、私有接口方法;3、垃圾收集機制;4、I/O流加強;5、JShell工具。
- JDK10:1、局部變量類型推斷;2、線程本地握手;3、GC改進和內存管理。
- JDK11:1、字符串加強;2、HttClient Api;3、用于 Lambda 參數的局部變量語法;4、ZGC
- JDK12:1、Switch Expressions;2、Shenandoah GC。
- JDK13:1、switch優化更新;2、文本塊升級;3、重新實現舊版套接字API;4、核心庫/java.util中:I18N;5、取消使用未使用的內存。
- JDK14:1、switch優化變更為最終版;2、垃圾回收相關;3、instanceof的模式匹配(預覽版);4、刪除了安全庫java.security.acl API;5、貨幣格式(優化)。
- JDK15:將RMI標記為Deprecate,還有Hidden Classes 、Pattern Matching 、Text Blocks 等特性。
盡管JDK版本已經更新到15了,但,據統計目前在開發和線上環境中,使用最多的是JDK8。
本文轉載自微信公眾號「Java后端技術全棧」,可以通過以下二維碼關注。轉載本文請聯系Java后端技術全棧公眾號。