Oracle與OpenJDK之間的區(qū)別

vs.png

簡(jiǎn)介

在本文中,我們將探討Oracle Java Development KitOpenJDK之間的差異并進(jìn)行比較。

Oracle JDK

Oracle JDK由Oracle公司開(kāi)發(fā),該公司是Sun許可證,基于Java標(biāo)準(zhǔn)版規(guī)范實(shí)現(xiàn)。它以二進(jìn)制產(chǎn)品的形式發(fā)布。它支持多種操作系統(tǒng),如Windows,Linux,Solaris,MacOS等。它支持不同的平臺(tái),如Intel 32位和64位架構(gòu),ARM架構(gòu)和SPARC。它完全基于Java編程語(yǔ)言。之后,該許可證宣布將根據(jù)GPL(通用公共許可證)許可證發(fā)布。Oracle JDK包含許多組件作為庫(kù)形式的編程工具集合。

我們來(lái)看看Java SE的歷史:

  • JDK Beta - 1995
  • JDK 1.0 - 1996年1月
  • JDK 1.1 - 1997年2月
  • J2SE 1.2 - 1998年12月
  • J2SE 1.3 - 2000年5月
  • J2SE 1.4 - 2002年2月
  • J2SE 5.0 - 2004年9月
  • Java SE 6 - 2006年12月
  • Java SE 7 - 2011年7月
  • Java SE 8(LTS) - 2014年3月
  • Java SE 9 - 2017年9月
  • Java SE 10(18.3) - 2018年3月
  • Java SE 11(18.9 LTS) - 2018年9月
  • Java SE 12(19.3) - 2019年3月

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

我們可以看到Java SE的主要版本大約每?jī)赡臧l(fā)布一次,直到Java SE 7.從Java SE 6開(kāi)始花了五年時(shí)間,之后又花了三年時(shí)間到達(dá)Java SE 8。

自Java SE 10以來(lái),我們可以期待每六個(gè)月發(fā)布一次新版本。但是,并非所有版本都是長(zhǎng)期支持(LTS)版本。由于Oracle的發(fā)布計(jì)劃,LTS產(chǎn)品發(fā)布僅每三年發(fā)布一次。

OpenJDK

OpenJDK是Java SE平臺(tái)版的開(kāi)源和免費(fèi)實(shí)現(xiàn),它是Sun Corporation(現(xiàn)在的Oracle Corporation)于2006年開(kāi)始的開(kāi)發(fā)結(jié)果。它是根據(jù)GNU GPL許可證授權(quán)的。它最初于2007年發(fā)布。它由Oracle Corporation,Red Hat,IBM,Apple Inc.,OpenJDK和Java Community等開(kāi)發(fā)。它是使用C ++和Java編程語(yǔ)言編寫的。它支持不同的操作系統(tǒng),如FreeBSD,Linux,Microsoft Windows,Mac OS X. OpenJDK是Java SE Platform Edition的官方參考實(shí)現(xiàn)。

現(xiàn)在讓我們看看OpenJDK版本:

  • OpenJDK 6項(xiàng)目 - 基于JDK 7,但經(jīng)過(guò)修改后提供了Java 6的開(kāi)源版本
  • OpenJDK 7項(xiàng)目 - 2011年7月28日
  • OpenJDK 7u項(xiàng)目 - 該項(xiàng)目開(kāi)發(fā)Java Development Kit 7的更新
  • OpenJDK 8項(xiàng)目 - 2014年3月18日
  • OpenJDK 8u項(xiàng)目 - 該項(xiàng)目開(kāi)發(fā)Java Development Kit 8的更新
  • OpenJDK 9項(xiàng)目 - 2017年9月21日
  • JDK項(xiàng)目于2018年3月10日至20日發(fā)布
  • JDK項(xiàng)目于2018年9月11日至25日發(fā)布
  • JDK項(xiàng)目發(fā)布12 - 穩(wěn)定階段

Oracle與OpenJDK之間的比較(信息圖表)

對(duì)比圖.jpg

Oracle與OpenJDK之間的主要區(qū)別

Oracle與OpenJDK都是市場(chǎng)上的熱門選擇; 讓我們討論一下OracleJDK與OpenJDK之間的一些主要差異:

  1. Oracle JDK版本將每三年發(fā)布一次,而OpenJDK版本每三個(gè)月發(fā)布一次。

  2. Oracle JDK將更多地關(guān)注穩(wěn)定性,它重視更多的企業(yè)級(jí)用戶,而OpenJDK經(jīng)常發(fā)布以支持其他性能,這可能會(huì)導(dǎo)致不穩(wěn)定。

  3. Oracle JDK支持長(zhǎng)期發(fā)布的更改,而Open JDK僅支持計(jì)劃和完成下一個(gè)發(fā)行版。

  4. Oracle JDK根據(jù)二進(jìn)制代碼許可協(xié)議獲得許可,而OpenJDK根據(jù)GPL v2許可獲得許可。
    使用Oracle平臺(tái)時(shí)會(huì)產(chǎn)生一些許可影響。如Oracle 宣布的那樣,在沒(méi)有商業(yè)許可的情況下,在2019年1月之后發(fā)布的Oracle Java SE 8的公開(kāi)更新將無(wú)法用于商業(yè),商業(yè)或生產(chǎn)用途。但是,OpenJDK是完全開(kāi)源的,可以自由使用。

  5. Oracle JDK的構(gòu)建過(guò)程基于OpenJDK,因此OpenJDK與Oracle JDK之間沒(méi)有技術(shù)差異。

  6. 頂級(jí)公司正在使用Oracle JDK,例如Android Studio,Minecraft和IntelliJ IDEA開(kāi)發(fā)工具,其中Open JDK不太受歡迎。

  7. Oracle JDK具有Flight Recorder,Java Mission Control和Application Class-Data Sharing功能,Open JDK具有Font Renderer功能,這是OpenJDK與Oracle JDK之間的顯著差異。

  8. Oracle JDK具有良好的GC選項(xiàng)和更好的渲染器,而OpenJDK具有更少的GC選項(xiàng),并且由于其包含自己的渲染器的分布,因此具有較慢的圖形渲染器選項(xiàng)。

  9. 在響應(yīng)性和JVM性能方面,Oracle JDK與OpenJDK相比提供了更好的性能。

  10. 與OpenJDK相比,Oracle JDK的開(kāi)源社區(qū)較少,OpenJDK社區(qū)用戶的表現(xiàn)優(yōu)于Oracle JDK發(fā)布的功能,以提高性能。

  11. 如果使用Oracle JDK會(huì)產(chǎn)生許可影響,而OpenJDK沒(méi)有這樣的問(wèn)題,并且可以以任何方式使用,以滿足完全開(kāi)源和免費(fèi)使用。

  12. Oracle JDK在運(yùn)行JDK時(shí)不會(huì)產(chǎn)生任何問(wèn)題,而OpenJDK在為某些用戶運(yùn)行JDK時(shí)會(huì)產(chǎn)生一些問(wèn)題。

  13. 根據(jù)使用方的使用和許可協(xié)議,現(xiàn)有應(yīng)用程序可以從Oracle JDK遷移到Open JDK,反之亦然。

  14. Oracle JDK將從其10.0.X版本將收費(fèi),用戶必須付費(fèi)或必須依賴OpenJDK才能使用其免費(fèi)版本。

  15. Oracle JDK不會(huì)為即將發(fā)布的版本提供長(zhǎng)期支持,用戶每次都必須通過(guò)更新到最新版本獲得支持來(lái)獲取最新版本。

  16. Oracle JDK以前的1.0版以前的版本是由Sun開(kāi)發(fā)的,后來(lái)被Oracle收購(gòu)并為其他版本維護(hù),而OpenJDK最初只基于Java SDK或JDK版本7。

  17. Oracle JDK發(fā)布時(shí)大多數(shù)功能都是開(kāi)源的,其中一些功能免于開(kāi)源,并且根據(jù)Sun的許可授權(quán),而OpenJDK發(fā)布了所有功能,如開(kāi)源和免費(fèi)。

  18. Oracle JDK完全由Oracle公司開(kāi)發(fā),而Open JDK項(xiàng)目由IBM,Apple,SAP AG,Redhat等頂級(jí)公司加入和合作。

Oracle與OpenJDK比較表

以下是Oracle與OpenJDK之間最重要的比較:

Oracle與OpenJDK之間比較 Oracle JDK OpenJDK
執(zhí)照 它是根據(jù)GPL(通用公共許可證)許可證授權(quán)的 它是根據(jù)GNU GPL(通用公共許可證)許可證授權(quán)的
發(fā)展 由Sun Microsystems Inc.開(kāi)發(fā) 由Oracle,OpenJDK和Java社區(qū)開(kāi)發(fā)
性能 根據(jù)Sun JDK的開(kāi)發(fā)和實(shí)現(xiàn)提供性能 提供由Oracle JDK之上的一些供應(yīng)商開(kāi)發(fā)的高性能
可擴(kuò)展性 根據(jù)Sun的實(shí)施 可以使用其他庫(kù)或Oracle JDK進(jìn)行改進(jìn)
費(fèi)用 Sun的官方執(zhí)行許可證 開(kāi)源和免費(fèi)實(shí)施可供免費(fèi)使用
速度 由Sun Microsystems Inc.開(kāi)發(fā) 第三方供應(yīng)商將通過(guò)進(jìn)行一些調(diào)整來(lái)提高JVM的速度
操作系統(tǒng) 支持Windows,Linux,Solaris,MacOS FreeBSD,Linux,Microsoft Windows,Mac OS X.
便于使用 可以與任何應(yīng)用程序開(kāi)發(fā)一起使用 可以與任何應(yīng)用程序開(kāi)發(fā)和其他開(kāi)源工具一起使用,以提高開(kāi)源實(shí)現(xiàn)模型的性能。

結(jié)論

Oracle JDK可用于開(kāi)發(fā)Java Web應(yīng)用程序,獨(dú)立應(yīng)用程序以及許多其他圖形用戶界面以及其他開(kāi)發(fā)工具。Oracle JDK執(zhí)行的所有操作或任務(wù)也可以由OpenJDK執(zhí)行,但只有Oracle與OpenJDK之間的區(qū)別在于Open JDK在現(xiàn)有Oracle JDK之上的許可和其他工具集成和實(shí)現(xiàn)。使用OpenJDK的優(yōu)點(diǎn)是可以根據(jù)應(yīng)用程序的要求修改性能,可伸縮性和實(shí)現(xiàn),以根據(jù)需要調(diào)整Java虛擬機(jī)。

OpenJDK的優(yōu)勢(shì)更多,Oracle JDK的使用在Oracle JDK實(shí)現(xiàn)中使用的標(biāo)準(zhǔn)方面也有一些好處,這將確保應(yīng)用程序穩(wěn)定和良好維護(hù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容