淺談Java語言版本簡史

Java語言 - 圖片來自簡書App

概述

1991年4月,由詹姆斯·高斯林博士領導的綠色計劃(Green Project)開始啟動,此計劃的目的是開發一種能夠在各種消費性電子產品上運行的程序架構。這個計劃的產品就是Java語言的前身Oak。Oak當時在消費市場上并不算成功,但隨著1995年互聯網潮流的興起,Oak迅速找到了最適合自己發展的市場定位并蛻變成Java語言。

特別聲明

本文中要說明的Java語言版本簡史是指在Java語言體系下Java語言版本的變化歷程,先給出Java技術體系包含以下技術分類:

版本進化歷程

版本號 發布時間
Java 1.0 1996年01月23日
Java 1.1 1997年02月18日
Java 1.2 1998年12月04日
Java 1.3 2000年05月18日
Java 1.4 2004年02月06日
Java 1.5 2004年09月30日
Java 6 2006年12月11日
Java 7 2011年07月29日
Java 8 2014年03月18日
Java 9 2017年09月22日
Java 10 2018年03月21日
Java 11 2018年09月25日

版本新特性及改進

Java 1.0

  • Java虛擬機
  • Applet
  • AWT

Java 1.1

  • JAR文件格式
  • JDBC
  • Java Beans
  • RMI

Java 1.2

  • EJB
  • Java Plug-in
  • Java IDL
  • Swing

Java 1.3

  • Math
  • Timer API
  • JNDI
  • RMI-IIOP
  • Java 2D API
  • Java Sound

Java 1.4

  • Regular Expressions
  • 異常鏈
  • NIO
  • 日志類
  • XML解析器
  • XSLT解析器

Java 1.5

  • 自動裝箱與拆箱
  • 泛型
  • 動態注解
  • 枚舉
  • 可變長參數
  • 遍歷循環
  • 靜態導入

Java 6

  • 提供動態語言支持
  • Desktop類和SystemTray類
  • 使用JAXB2來實現對象與XML之間的映射
  • 理解STAX
  • 使用Compiler API
  • 輕量級 Http Server API
  • 插入式注解處理 API
  • 使用Console開發控制臺程序
  • Common Annotations
  • Java GUI界面的顯示
  • 嵌入式數據庫Derby
  • Web服務元數據
  • Jtable的排序和過濾
  • 更簡單更強大的JAX-WS

Java 7

  • switch語句中可以使用字符串
  • 泛型實例化類型自動推斷
  • 自定義自動關閉類
  • 新增一些讀取環境信息的工具方法
  • Boolean類型反轉,空指針安全,參與位運算
  • 兩個char之間的equals
  • 更加安全的加減乘除
  • 對Java集合( Collections)的增強支持
  • 數值可加下劃線
  • 支持二進制數字

Java 8

  • 接口的默認方法
  • Lambda表達式
  • 函數式接口
  • 方法與構造函數引用
  • 擴展了集合類
  • 新的Date API
  • Annotation多重注解
  • Streams API
  • Parallel Streams
  • Map數據結構改進

Java 9

  • Jigsaw模塊化項目
  • 簡化進程API
  • 輕量級JSON API
  • 錢和貨幣的API
  • 改善鎖競爭機制
  • 代碼分段緩存
  • 智能java編譯
  • HTTP2.0客戶端
  • Kulla計劃

Java 10

  • 局部變量的類型推斷
  • GC改進和內存管理
  • 線程本地握手
  • 備用內存設備上的堆分配
  • 其他Unicode語言 - 標記擴展
  • 基于Java的實驗性JIT編譯器
  • 開源根證書
  • 根證書頒發認證(CA)
  • 將JDK生態整合單個存儲庫
  • 刪除工具javah
  • Java REPL(JShell)

Java 11

  • 本地變量類型推斷
  • 字符串增強
  • 集合增強
  • Stream 增強
  • Optional 增強
  • InputStream 增強
  • 標準化HTTP Client API
  • 單個命令編譯運行源代碼

Java 12

  • Switch表達式
  • Shenandoah垃圾回收集
  • JVM Constants API
  • Default CDS Archives

有關LTS

從Java 9開始到目前已經發布的Java 11,Oracle公司已經按照半年一個大版本的方式發布Java JDK,而Java 11是目前發布的第一個LTS版本(長期支持版本)。有關的Java語言的詳細發布路線請參考Oracle官方文檔,若是您對此還有疑問我會另外分享一篇文章來專門說明Java版本的發布和支持情況。

有關語義化版本

Semantic Versions是指一個軟件產品在正式發布的時候采取的語義化版本信息,具體格式如下:
主版本號.次版本號.修訂號
隨著軟件產品的不斷更新迭代,要是沒有統一規范的軟件版本管理規范,那么對于現代軟件產品的生命周期控制可是一項偉大工程。而對于目前Java的版本發布情況,使用的是大版本號 + 發布年份月份的格式。

Java版本格式 - 圖片來自簡書App

參考

總結

對于以上知識點的梳理讓我知道了Java技術體系中涉及了哪些具體的功能和實現,也漸漸了解了Java SE、Java EE、Java ME、Java Embedded、Java Card和Java TV之間的關系,更是知道了Java語言應用的廣泛場景。不管是客戶端、服務器、嵌入式設備、還是成千上萬的便攜式設備,我相信經過這么多年的技術積累和技術演變,會為更多的Java開發者提供更加豐富更加便捷的開發運行部署環境,也為后續Java語言的發展和演變提供了有力的保證和支持。若是我的文章對你有所啟發,那將是我莫大的榮幸。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,739評論 6 534
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,634評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,653評論 0 377
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,063評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,835評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,235評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,315評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,459評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,000評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,819評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,004評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,560評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,257評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,676評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,937評論 1 288
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,717評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,003評論 2 374

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,666評論 25 708
  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 12,792評論 2 59
  • 失去眼睛的耳朵聽到了心跳 丟掉嘴臉的血脈刺穿了胸膛
    卡西莫多su閱讀 177評論 0 0
  • 其實就是在scrollView里做控制 老板說想要一種類似支付寶的導航欄過渡切換效果,花了半天功夫把代碼改好了 做...
    YannChee閱讀 606評論 0 0
  • 一、cell編輯步驟 1、讓tableView 處于編輯狀態 2、設置某些cell 可以編輯 3、設置某些cell...
    Lambo316閱讀 1,417評論 0 1