在本文中,咱們將探討Oracle Java Development Kit和OpenJDK之間的差別並進行比較。html
Oracle JDK由Oracle公司開發,該公司是Sun許可證,基於Java標準版規範實現。它以二進制產品的形式發佈。它支持多種操做系統,如Windows,Linux,Solaris,MacOS等。它支持不一樣的平臺,如Intel 32位和64位架構,ARM架構和SPARC。它徹底基於Java編程語言。以後,該許可證宣佈將根據GPL(通用公共許可證)許可證發佈。Oracle JDK包含許多組件做爲庫形式的編程工具集合。java
咱們來看看Java SE的歷史:編程
注意:再也不支持斜體版本。架構
咱們能夠看到Java SE的主要版本大約每兩年發佈一次,直到Java SE 7.從Java SE 6開始花了五年時間,以後又花了三年時間到達Java SE 8。oracle
自Java SE 10以來,咱們能夠期待每六個月發佈一次新版本。可是,並不是全部版本都是長期支持(LTS)版本。因爲Oracle的發佈計劃,LTS產品發佈僅每三年發佈一次。jsp
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版本:工具
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 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實現中使用的標準方面也有一些好處,這將確保應用程序穩定和良好維護。