JDK 的版本與淵源

JDK

JDK 全稱 Java Development Kit,是 Java 開發(fā)環(huán)境雹顺。我們通常所說的 JDK 指的是 Java SE (Standard Edition) Development Kit。除此之外還有 Java EE(Enterprise Edition)和 Java ME(Micro Edition platforms)廊遍。

Java 的發(fā)布周期

下面我們看一些 Java 發(fā)展過程中重要的節(jié)點嬉愧。

1995年 alpha 和 beta Java 公開版本發(fā)布,取名為 WebRunner喉前。

1996.1.23Java 第一個版本發(fā)布没酣,取名叫 Oak。但是第一個穩(wěn)定版本是 JDK 1.0.2卵迂,被稱做 Java 1裕便。

1998.12.8發(fā)布了 J2SE 1.2。這個版本到 J2SE 5.0 更名為 Java 2狭握。其中的 SE 指的是 Standard Edition闪金,為了區(qū)別于 J2EE(Enterprise Edition)和 J2ME(Micro Edition)。

2000.5?發(fā)布了 J2SE 1.3论颅,其中包含了 HotSpot JVM哎垦。而 HotSpot JVM 首次發(fā)布是在 1999.4,名為 J2SE 1.2 JVM恃疯。

2004.9.30發(fā)布了 J2SE 5.0漏设。為什么這個版本命名和前面幾個版本不一樣呢?這個版本原本計劃以 1.5 命名的今妄,沿用以前的命名方式郑口。但是為了更好的反映這個版本的成熟度鸳碧,所以改名為 5.0。

這個版本以后犬性,有了一個新的版本控制系統(tǒng)瞻离,5.0 用來表示產(chǎn)品版本,用來表示穩(wěn)定的 J2SE 版本乒裆,而 1.5.0 用來表示開發(fā)者版本套利,也就是 Java 5.0 = JDK 1.5.0。

2006.12.11鹤耍,J2SE 改名為 Java SE肉迫,版本號去掉了 .0。此后對應版本就是 Java 6 = JDK 1.6稿黄,Java 7 = JDK 1.7喊衫。

2011.7.7. 發(fā)布 Java SE 7,是一個重大版本更新杆怕。更新了眾多特性族购。

2018.3發(fā)布 Java SE 10。在此之前财著,Java 基本上是兩年一個版本联四,除了 Java SE 7 經(jīng)過了五年,Java SE 8 經(jīng)過了三年撑教。在此之后朝墩,就是每六個月發(fā)布一次新版本。但是不是每個版本都是 LTS(Long-Term-Support)伟姐。按照 Oracle 的計劃收苏,每三年會有一個 LTS 版本。最近的 LTS 版本就是 Java SE 11 了愤兵。

OpenJDK VS Oracle JDK

OpenJDK 是 在 2007 年由 Sun Corporation(現(xiàn)在的Oracle Corporation) 發(fā)布的鹿霸。是 Oracle JDK 的開源實現(xiàn)版本,以 GPL 協(xié)議發(fā)布秆乳。在 JDK 7 的時候懦鼠,Sub JDK 就是在 Open JDK 7 的基礎上發(fā)布的,只替換了少量的源碼屹堰。在 Sun 公司被 Oracle 收購以后肛冶,Sun SDK 就被稱為 Oracle JDK。Oracle JDK 是基于 Oracle Binary COde License Agreement 協(xié)議扯键。

兩者的區(qū)別如下:

Oracle JDK 將三年發(fā)布一次穩(wěn)定版本睦袖,OpenJDK 每三個月發(fā)布一次。

Oracle JDK 支持 LTS荣刑,OpenJDK 只支持當前版本至下一個版本發(fā)布馅笙。

Oracle JDK 采用 Oracle Binary Code License 協(xié)議伦乔,OpenJDK 采用 GPL v2 協(xié)議。

Oracle JDK 基于 OpenJDK 構建董习,技術上基本沒有差異烈和。

Android 和 JDK

說起 Android 和 OpenJDK 的歷史淵源,還是略微復雜皿淋。

簡單來說斥杜,Android 最開始使用的 Java 是基于 Apache 協(xié)議發(fā)布的 Harmony,后來由于 Harmony 本身的限制和 Oracle 公司的起訴沥匈,從 Android N 以后, Google 開始使用 OpenJDK忘渔。

然后我們再稍微展開聊聊高帖。

JVM 和 TCK

Sun 公司最初開發(fā)了 Java 語言,同時也開發(fā)了 JVM畦粮,并且定義了 JVM 規(guī)范散址。這個我們比較清楚,只要基于 JVM 規(guī)范開發(fā)自己的語言宣赔,就可以運行在 JVM 上预麸。但是依照規(guī)范開發(fā)了語言之后,需要通過 Sun 的 TCK(Technology Compatibility Kit)測試儒将,之后才能成為官方認可的 JVM 語言吏祸。

Harmony 和 OpenJDK

基于 JVM 規(guī)范,Apache 開發(fā)了一個開源免費的 Java 實現(xiàn) Harmony钩蚊,并且根據(jù) Apache License v2 發(fā)布贡翘。但是 Sun 公司并沒有給 Harmony TCK 許可。

在 2009.4.15 Sun 公司發(fā)布了 OpenJDK砰逻,基于 GNU GPL 發(fā)布鸣驱。同時 Sun 公司規(guī)定只有衍生自 OpenJDK 采用的 GPL 協(xié)議的開源實現(xiàn)才能運行 OpenJDK 的 TCK。之后 Oracle 收購 Sun 公司以后接管了 OpenJDK蝠咆。

由于 Apache 的 Harmony 是 Apache 協(xié)議踊东,與 OpenJDK 的 GPL 協(xié)議不兼容,所以 Harmony 一直沒有得到 TCK 授權刚操。

Android 最開始是采用了 Harmony 作為自己的 Java 類庫闸翅,因為 Harmony 使用的 Apache 協(xié)議更自由。而由于 Harmony 沒有通過 TCK 認證赡茸,也為后來 Oracle 起訴 Google 埋下伏筆缎脾。

Oracle 和 Google 關于 JDK 糾紛

后來 Oracle 起訴 Google 主要集中在兩點,一是 Oracle 認為 Google 代碼中使用了 Java 的 37 個 API占卧,二是 Sun 公司前員工在跳槽后為 Android 項目開發(fā)時遗菠,直接復制了 OpenJDK 中的九行代碼联喘,而 Android 項目并沒有按照 GPL 協(xié)議授權,所以復制 OpenJDK 代碼是沒有通過 GPL 授權的辙纬。

所以到后來為了解決專利的問題豁遭,Android N 以后,Android 開始使用 OpenJDK 替換 Harmony贺拣。

以上 Android 和 JDK 參考資料:

https://juejin.im/entry/5abc516b518825556f557f90

https://gudong.name/2019/04/05/android-why-java-harmony.html

然后我以思維導圖的方式蓖谢,給一個Java版本演進的脈絡,這個屬于高級Java 部分譬涡,只是讓大家知道一下闪幽。


?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市涡匀,隨后出現(xiàn)的幾起案子盯腌,更是在濱河造成了極大的恐慌,老刑警劉巖陨瘩,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腕够,死亡現(xiàn)場離奇詭異,居然都是意外死亡舌劳,警方通過查閱死者的電腦和手機帚湘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來甚淡,“玉大人大诸,你說我怎么就攤上這事〔姆蹋” “怎么了底挫?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長脸侥。 經(jīng)常有香客問我建邓,道長,這世上最難降的妖魔是什么睁枕? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任官边,我火速辦了婚禮,結果婚禮上外遇,老公的妹妹穿的比我還像新娘注簿。我一直安慰自己,他們只是感情好跳仿,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布诡渴。 她就那樣靜靜地躺著,像睡著了一般菲语。 火紅的嫁衣襯著肌膚如雪妄辩。 梳的紋絲不亂的頭發(fā)上惑灵,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天,我揣著相機與錄音眼耀,去河邊找鬼英支。 笑死,一個胖子當著我的面吹牛哮伟,可吹牛的內容都是我干的干花。 我是一名探鬼主播,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼楞黄,長吁一口氣:“原來是場噩夢啊……” “哼池凄!你這毒婦竟也來了?” 一聲冷哼從身側響起鬼廓,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤修赞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后桑阶,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡勾邦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年蚣录,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片眷篇。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡萎河,死狀恐怖,靈堂內的尸體忽然破棺而出蕉饼,到底是詐尸還是另有隱情虐杯,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布昧港,位于F島的核電站擎椰,受9級特大地震影響,放射性物質發(fā)生泄漏创肥。R本人自食惡果不足惜达舒,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望叹侄。 院中可真熱鬧巩搏,春花似錦、人聲如沸趾代。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽撒强。三九已至禽捆,卻和暖如春笙什,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背睦擂。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工得湘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人顿仇。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓淘正,卻偏偏與公主長得像,于是被迫代替她去往敵國和親臼闻。 傳聞我的和親對象是個殘疾皇子鸿吆,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349