Oracle JDK和 OpenJDK 之間的區別

2022-09-18 15:15:07 字數 3299 閱讀 4056

1.簡介

在本文中,我們將**oracle j**a development kit和openjdk之間的差異。我們先快速瀏覽一下,然後進行比較。之後,我們將看到其他jdk實現的列表。

2. oracle jdk和j**a se歷史

jdk(j**a development kit)是j**a平台程式設計中使用的軟體開發環境。它包含乙個完整的j**a執行時環境,即所謂的私有執行時。該名稱來自於它包含的工具多於獨立的jre以及開發j**a應用程式所需的其他元件。

oracle強烈建議使用術語jdk來引用j**a se(標準版)開發工具包(還有enterprise edition和micro edition平台)。

我們來看看j**a se的歷史:

注意:不再支援斜體版本。

我們可以看到j**a se的主要版本大約每兩年發布一次,直到j**a se 7.從j**a se 6開始花了五年時間,之後又花了三年時間公升級到j**a se 8。

自j**a se 10以來,我們可以期待每六個月發布一次新版本。但是,並非所有版本都是長期支援(lts)版本。由於oracle的發布計畫,lts產品發布僅每三年發布一次。

j**a se 11是最新的lts版本,j**a se 8將在2023年12月之前獲得免費的公共更新,用於非商業用途。

在2023年oracle收購sun microsystems之後,這個開發工具包得到了它的當前名稱。在此之前,它的名字是sun jdk,它是j**a程式語言的官方實現。

3. openjdk

openjdk是j**a se 平台版本的免費開源實現。它最初於2023年發布,是sun microsystems於2023年開始開發的結果。

當然,我們應該強調openjdk是自se 7版以來j**a標準版的官方參考實現

最初,它僅基於jdk 7.但是,從j**a 10開始,j**a se平台的開源參考實現是jdk專案的責任。而且,就像oracle一樣,jdk專案也將每六個月發布一次新功能。

我們應該注意到,在這個長期執行的專案之前,jdk release projects發布了乙個功能,然後停止了。

現在讓我們看看openjdk版本:

4. oracle jdk與openjdk

在本節中,我們將重點介紹oracle jdk和openjdk之間的主要區別。

4.1. 發布時間表

正如我們所提到的,oracle將每三年發布一次,openjdk將每六個月發布一次

oracle為其版本提供長期支援。另一方面,openjdk僅支援對發布的更改,直到下乙個版本發布。

4.2. 許可證

oracle jdk根據oracle二進位制**許可協議獲得許可,而openjdk具有gnu通用公共許可證(gnu gpl)版本2,使用了乙個修正版本

使用oracle平台時會產生一些許可影響。如oracle 宣布的那樣,在沒有商業許可的情況下,在2023年1月之後發布的oracle j**a se 8的公開更新將無法用於商業,商業或生產用途。但是,openjdk是完全開源的,可以自由使用。

4.3. 效能

兩者之間沒有真正的技術差別,因為針對oracle jdk構建過程是基於openjdk的的

在效能方面,oracle在響應能力和jvm效能方面要好得多。由於其對企業客戶的重要性,它更加關注穩定性。

相比之下,openjdk將更頻繁地發布版本。結果,我們可能遇到不穩定的問題。根據社群反饋,我們知道一些openjdk使用者遇到了效能問題。

4.4. 功能

功能,而openjdk具有font renderer功能

此外,oracle有更多的垃圾收集選項和更好的渲染器,我們可以在另乙個比較中看到。

4.5. 發展與人氣

正如我們從前一小節的鏈結中看到的那樣,當涉及到在其工具中使用j**a開發工具包的頂級公司(例如android studio或intellij idea)的流行時oracle jdk是更*受歡迎的*。

另一方面,主要的linux發行版(fedora,ubuntu,red hat enterprise linux)提供openjdk作為預設的j**a se實現。

5.自j**a 11以來的變化

正如我們在oracle部落格文章中看到的那樣 ,從j**a 11開始有一些重要的變化。

首先,oracle將使用oracle jdk作為oracle產品的一部分,將開源**gnu通用公共許可證v2與classpath exception(gplv2 + cpe)*和商業許可證結合

使用,或者

更改其歷史「 bcl 」許可證,* 或者服務,或不歡迎開源軟體。

每個許可證都有不同的版本,但這些版本在功能上只與一些裝飾和包裝差異相同。

讓我們看看主要的區別:

6.其他jdk實現

現在讓我們快速瀏覽一下其他活動的j**a development kit實現。

6.1. 自由開源

按字母順序列出的以下實現是開源的,可以免費使用:

6.2. 專有實現

與上面列出的有效實現一起,我們可以看到非有效實現的列表 以及每個實現的簡短描述。

7.結論

在本文中,我們專注於當今最流行的兩個j**a開發工具包。

我們首先描述了它們中的每乙個,然後強調了它們之間最顯著的差異。然後,我們特別關注自j**a 11以來的變化和差異。最後,我們列出了今天可用的其他有效實現。

8.備註

翻譯自:

0818 OpenJ 13295 最佳加法表示式

摘要 通過在大整數中新增加號使數字的值最小 原題目摘要 最佳加法表示式 描述給定n個1到9的數字,要求在數字之間擺放m個加號 加號兩邊必須有數字 使得所得到的加法表示式的值最小,並輸出該值。例如,在1234中擺放1個加號,最好的擺法就是12 34,和為36 輸入有不超過15組資料 每組資料兩行。第一...

0811 OpenJ 求排列的逆序數

摘要 給定數列,快速地求數列的逆序數,使用歸併 原題目摘要 求排列的逆序數 描述 在internet上的搜尋引擎經常需要對資訊進行比較,比如可以通過某個人對一些事物的排名來估計他 或她 對各種不同資訊的興趣,從而實現個性化的服務。對於不同的排名結果可以用逆序來評價它們之間的差異。考慮1,2,n的排列...

0910 OpenJ 6044 鳴人和佐助

摘要 使用bfs來尋找最短的可行路徑 原題目摘要 鳴人和佐助 佐助被大蛇丸誘騙走了,鳴人在多少時間內能追上他呢?已知一張地圖 以二維矩陣的形式表示 以及佐助和鳴人的位置。地圖上的每個位置都可以走到,只不過有些位置上有大蛇丸的手下,需要先打敗大蛇丸的手下才能到這些位置。鳴人有一定數量的查克拉,每乙個單...