簡介
在本文中,咱們將探討Oracle Java Development Kit和OpenJDK之間的差別並進行比較。html
Oracle JDK
Oracle JDK由Oracle公司開發,該公司是Sun許可證,基於Java標準版規範實現。它以二進制產品的形式發佈。它支持多種操做系統,如Windows,Linux,Solaris,MacOS等。它支持不一樣的平臺,如Intel 32位和64位架構,ARM架構和SPARC。它徹底基於Java編程語言。以後,該許可證宣佈將根據GPL(通用公共許可證)許可證發佈。Oracle JDK包含許多組件做爲庫形式的編程工具集合。java
咱們來看看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的主要版本大約每兩年發佈一次,直到Java SE 7.從Java SE 6開始花了五年時間,以後又花了三年時間到達Java SE 8。oracle
自Java SE 10以來,咱們能夠期待每六個月發佈一次新版本。可是,並不是全部版本都是長期支持(LTS)版本。因爲Oracle的發佈計劃,LTS產品發佈僅每三年發佈一次。jsp
OpenJDK
OpenJDK是Java SE平臺版的開源和免費實現,它是Sun Corporation(如今的Oracle Corporation)於2006年開始的開發結果。它是根據GNU GPL許可證受權的。它最初於2007年發佈。它由Oracle Corporation,Red Hat,IBM,Apple Inc.,OpenJDK和Java Community等開發。它是使用C ++和Java編程語言編寫的。它支持不一樣的操做系統,如FreeBSD,Linux,Microsoft Windows,Mac OS X. OpenJDK是Java SE Platform Edition的官方參考實現。編程語言
如今讓咱們看看OpenJDK版本:工具
- OpenJDK 6項目 - 基於JDK 7,但通過修改後提供了Java 6的開源版本
- OpenJDK 7項目 - 2011年7月28日
- OpenJDK 7u項目 - 該項目開發Java Development Kit 7的更新
- OpenJDK 8項目 - 2014年3月18日
- OpenJDK 8u項目 - 該項目開發Java Development Kit 8的更新
- OpenJDK 9項目 - 2017年9月21日
- JDK項目於2018年3月10日至20日發佈
- JDK項目於2018年9月11日至25日發佈
- JDK項目發佈12 - 穩定階段
Oracle與OpenJDK之間的比較(信息圖表)
Oracle與OpenJDK之間的主要區別
Oracle與OpenJDK都是市場上的熱門選擇; 讓咱們討論一下OracleJDK與OpenJDK之間的一些主要差別:
- Oracle JDK版本將每三年發佈一次,而OpenJDK版本每三個月發佈一次。
- Oracle JDK將更多地關注穩定性,它重視更多的企業級用戶,而OpenJDK常常發佈以支持其餘性能,這可能會致使不穩定。
- Oracle JDK支持長期發佈的更改,而Open JDK僅支持計劃和完成下一個發行版。
- Oracle JDK根據二進制代碼許可協議得到許可,而OpenJDK根據GPL v2許可得到許可。
使用Oracle平臺時會產生一些許可影響。如Oracle 宣佈的那樣,在沒有商業許可的狀況下,在2019年1月以後發佈的Oracle Java SE 8的公開更新將沒法用於商業,商業或生產用途。可是,OpenJDK是徹底開源的,能夠自由使用。性能
- Oracle JDK的構建過程基於OpenJDK,所以OpenJDK與Oracle JDK之間沒有技術差別。
- 頂級公司正在使用Oracle JDK,例如Android Studio,Minecraft和IntelliJ IDEA開發工具,其中Open JDK不太受歡迎。
- Oracle JDK具備Flight Recorder,Java Mission Control和Application Class-Data Sharing功能,Open JDK具備Font Renderer功能,這是OpenJDK與Oracle JDK之間的顯着差別。
- Oracle JDK具備良好的GC選項和更好的渲染器,而OpenJDK具備更少的GC選項,而且因爲其包含本身的渲染器的分佈,所以具備較慢的圖形渲染器選項。
- 在響應性和JVM性能方面,Oracle JDK與OpenJDK相比提供了更好的性能。
- 與OpenJDK相比,Oracle JDK的開源社區較少,OpenJDK社區用戶的表現優於Oracle JDK發佈的功能,以提升性能。
- 若是使用Oracle JDK會產生許可影響,而OpenJDK沒有這樣的問題,而且能夠以任何方式使用,以知足徹底開源和無償使用。
- Oracle JDK在運行JDK時不會產生任何問題,而OpenJDK在爲某些用戶運行JDK時會產生一些問題。
- 根據使用方的使用和許可協議,現有應用程序能夠從Oracle JDK遷移到Open JDK,反之亦然。
- Oracle JDK將從其10.0.X版本將收費,用戶必須付費或必須依賴OpenJDK才能使用其免費版本。
- Oracle JDK不會爲即將發佈的版本提供長期支持,用戶每次都必須經過更新到最新版本得到支持來獲取最新版本。
- Oracle JDK之前的1.0版之前的版本是由Sun開發的,後來被Oracle收購併爲其餘版本維護,而OpenJDK最初只基於Java SDK或JDK版本7。
- Oracle JDK發佈時大多數功能都是開源的,其中一些功能免於開源,而且根據Sun的許可受權,而OpenJDK發佈了全部功能,如開源和免費。
- Oracle JDK徹底由Oracle公司開發,而Open JDK項目由IBM,Apple,SAP AG,Redhat等頂級公司加入和合做。
Oracle與OpenJDK比較表
如下是Oracle與OpenJDK之間最重要的比較:
Oracle與OpenJDK之間比較 |
Oracle JDK |
OpenJDK |
執照 |
它是根據GPL(通用公共許可證)許可證受權的 |
它是根據GNU GPL(通用公共許可證)許可證受權的 |
發展 |
由Sun Microsystems Inc.開發 |
由Oracle,OpenJDK和Java社區開發 |
性能 |
根據Sun JDK的開發和實現提供性能 |
提供由Oracle JDK之上的一些供應商開發的高性能 |
可擴展性 |
根據Sun的實施 |
可使用其餘庫或Oracle JDK進行改進 |
費用 |
Sun的官方執行許可證 |
開源和免費實施可供無償使用 |
速度 |
由Sun Microsystems Inc.開發 |
第三方供應商將經過進行一些調整來提升JVM的速度 |
操做系統 |
支持Windows,Linux,Solaris,MacOS |
FreeBSD,Linux,Microsoft Windows,Mac OS X. |
便於使用 |
能夠與任何應用程序開發一塊兒使用 |
能夠與任何應用程序開發和其餘開源工具一塊兒使用,以提升開源實現模型的性能。 |
結論
Oracle JDK可用於開發Java Web應用程序,獨立應用程序以及許多其餘圖形用戶界面以及其餘開發工具。Oracle JDK執行的全部操做或任務也能夠由OpenJDK執行,但只有Oracle與OpenJDK之間的區別在於Open JDK在現有Oracle JDK之上的許可和其餘工具集成和實現。使用OpenJDK的優勢是能夠根據應用程序的要求修改性能,可伸縮性和實現,以根據須要調整Java虛擬機。開發工具
OpenJDK的優點更多,Oracle JDK的使用在Oracle JDK實現中使用的標準方面也有一些好處,這將確保應用程序穩定和良好維護。