美團(tuán)面試:你了解JDK版本相關(guān)特性嗎?結(jié)果令人尷尬!
關(guān)于版本意識,尤其是初學(xué)者,很少有人會(huì)關(guān)注(很多三五年了,照樣沒怎么關(guān)注)。
為什么不關(guān)注呢?因?yàn)樗麄冴P(guān)注都是功能點(diǎn)或者知識點(diǎn)。
后來,逐漸的,一部分人在開發(fā)中就會(huì)遇到各種各樣的問題,于是就開始關(guān)注版本了,而另外一部分人完全就是為了應(yīng)付面試。
接下來,我們就來聊聊JDK版本和相關(guān)特性。
JDK版本變更歷史
下面我呢來整體預(yù)覽一下JDK版本變更情況:
JDK版本 | 發(fā)布時(shí)間 |
---|---|
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發(fā)布于2014年3月14號,從Java 8開始開發(fā)代號已經(jīng)棄用了,所以從Java 8之后已經(jīng)沒有官方的開發(fā)代號了。Java 8u201/202是最后一個(gè)免費(fèi)的 Oracle JDK 8版本,Oracle于 2019-01-15 停止免費(fèi)商用更新。
很多人,你的是不是年齡還沒有JDK大?羨慕
JDK版本功能增強(qiáng)
- JDK1.0:初代版本,純解釋運(yùn)行,使用外掛JIT,性能比較差,運(yùn)行速度慢。
- JDK1.1:JDBC(Java DataBase Connectivity)、支持內(nèi)部類、RMI、反射、Java Bean。
- JDK1.2:集合框架 、JIT 、JFC、Java插件 、JDBC中引入可滾動(dòng)結(jié)果集 、Applet中添加聲音支持。
- JDK1.3:Java Sound API、jar文件索引、對Java的各個(gè)方面都做了大量優(yōu)化和增強(qiáng) 。
- JDK1.4 :正則表達(dá)式,異常鏈,NIO,日志類,XML解析器,XLST轉(zhuǎn)換器。
- JDK1.5:自動(dòng)裝箱、泛型、動(dòng)態(tài)注解、枚舉、可變長參數(shù)、遍歷循環(huán)。
- JDK1.6:提供動(dòng)態(tài)語言支持、提供編譯API和衛(wèi)星HTTP服務(wù)器API,改進(jìn)JVM的鎖,同步垃圾回收,類加載。
- JDK1.7:提供GI收集器、加強(qiáng)對非Java語言的調(diào)用支持(JSR-292,升級類加載架構(gòu))。
- JDK8 :Lambda 表達(dá)式、方法引用、默認(rèn)方法、新工具、Stream API、Date Time API 、Optional類、Nashorn,JavaScript 引擎。
- JDK9:1、集合加強(qiáng);2、私有接口方法;3、垃圾收集機(jī)制;4、I/O流加強(qiáng);5、JShell工具。
- JDK10:1、局部變量類型推斷;2、線程本地握手;3、GC改進(jìn)和內(nèi)存管理。
- JDK11:1、字符串加強(qiáng);2、HttClient Api;3、用于 Lambda 參數(shù)的局部變量語法;4、ZGC
- JDK12:1、Switch Expressions;2、Shenandoah GC。
- JDK13:1、switch優(yōu)化更新;2、文本塊升級;3、重新實(shí)現(xiàn)舊版套接字API;4、核心庫/java.util中:I18N;5、取消使用未使用的內(nèi)存。
- JDK14:1、switch優(yōu)化變更為最終版;2、垃圾回收相關(guān);3、instanceof的模式匹配(預(yù)覽版);4、刪除了安全庫java.security.acl API;5、貨幣格式(優(yōu)化)。
- JDK15:將RMI標(biāo)記為Deprecate,還有Hidden Classes 、Pattern Matching 、Text Blocks 等特性。
盡管JDK版本已經(jīng)更新到15了,但,據(jù)統(tǒng)計(jì)目前在開發(fā)和線上環(huán)境中,使用最多的是JDK8。
本文轉(zhuǎn)載自微信公眾號「Java后端技術(shù)全?!?,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系Java后端技術(shù)全棧公眾號。