欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

openjdk與Oraclejdk的區(qū)別

 更新時(shí)間:2020年08月19日 08:35:53   作者:程序員自由之路  
這篇文章主要介紹了openjdk與Oraclejdk的區(qū)別,幫助大家更好的了解JAVA,感興趣的朋友可以了解下

在2006年11月13日的JavaOne大會(huì)上,Sun公司(當(dāng)時(shí)還沒(méi)被收購(gòu))宣布計(jì)劃要把Java開(kāi)源,在隨后的一年多時(shí)間內(nèi),它陸續(xù)地將JDK的各個(gè)部分在GPL v2(GNU General Public License v2)協(xié)議下公開(kāi)了源碼,并建立了OpenJDK組織對(duì)這些源碼進(jìn)行獨(dú)立管理。除了極少量的產(chǎn)權(quán)代碼(Encumbered Code,這部分代碼所有權(quán)不屬于Sun公司,Sun本身也無(wú)權(quán)進(jìn)行開(kāi)源處理)外,OpenJDK幾乎擁有了當(dāng)時(shí)SunJDK 的全部代碼。

OpenJDK的質(zhì)量主管曾經(jīng)表示在JDK 7中,SunJDK和OpenJDK除了代碼文件頭的版權(quán)注釋之外,代碼幾乎是完全一樣的,所以O(shè)penJDK 7與SunJDK 7本質(zhì)上就是同一套代碼庫(kù)出來(lái)的產(chǎn)品。

總結(jié)下來(lái),OpenJDK和OracleJDK存在以下方面的區(qū)別:

授權(quán)協(xié)議不同

OpenJDK 采用GPL V2協(xié)議放出,而OracleJDK則采用JRL放出。兩者協(xié)議雖然都是開(kāi)放源代碼的,但是在使用上的不同在于GPL V2允許在商業(yè)上使用,而JRL只允許個(gè)人研究使用。

OpenJDK不包含OracleJDK中的部分產(chǎn)權(quán)代碼

由于OracleJDK中的部分代碼的產(chǎn)權(quán)也不是歸Oracle所有的,所以這部分代碼就沒(méi)開(kāi)源到OpenJDK中。但是很多“好心”的開(kāi)源愛(ài)好者在OpenJDK中實(shí)現(xiàn)了相同的功能,并將源代碼開(kāi)源到OpenJDK中。比如說(shuō)字體柵格化引擎,使用Free Type代替。

不能使用Java商標(biāo)

在Sun被Oracle收購(gòu)以后,Java這個(gè)商標(biāo)就歸Oracle所有了。不僅OpenJDK不能使用java商標(biāo),J2EE這個(gè)曾經(jīng)Sun的親兒子命運(yùn)也同樣坎坷,已經(jīng)被Oracle無(wú)情拋棄,同樣
不能在使用Java商標(biāo)。

但是隨著JDK版本的不斷發(fā)布,Oracle失去了維護(hù)OpenJDK的耐心,因?yàn)椴毁嶅X(qián)啊。RedHat從Oracle手上接過(guò)OpenJDK的管理權(quán)利和維護(hù)職責(zé)。

2019年3月20日,JDK 12發(fā)布,只包含8個(gè)JEP,其中主要有Switch表達(dá)式、Java微測(cè)試套件(JMH)等新功能,最引人注目的特性無(wú)疑是加入了由RedHat領(lǐng)導(dǎo)開(kāi)發(fā)的Shen-andoah垃圾收集器。Shenandoah作為首個(gè)由非Oracle開(kāi)發(fā)的垃圾收集器,其目標(biāo)又與Oracle在JDK 11中發(fā)布的ZGC幾乎完全一致,兩者天生就存在競(jìng)爭(zhēng)。Oracle馬上用實(shí)際行動(dòng)抵制了這個(gè)新收集器,在JDK 11發(fā)布時(shí)才說(shuō)應(yīng)盡可能保證OracleJDK和OpenJDK的兼容一致,轉(zhuǎn)眼就在OracleJDK 12里把Shenandoah的代碼通過(guò)條件編譯強(qiáng)行剔除掉,使其成為歷史上唯一進(jìn)入了OpenJDK發(fā)布清單,但在OracleJDK中無(wú)法使用的功能。

所以對(duì)于高版本的OpenJDK和OracleJDK之間,也存在OpenJDK中有的功能,但是OracleJDK中不包含的。

總的來(lái)說(shuō),對(duì)于普通開(kāi)發(fā),使用OpenJDK和OracleJDK并沒(méi)有太大差別,兩者的差別更體現(xiàn)在商業(yè)考量上面。

openjdk源代碼不完整

這個(gè)很容易想到,在采用GPL協(xié)議的OpenJDK中,SUN JDK的一部分源代碼因?yàn)楫a(chǎn)權(quán)的問(wèn)題無(wú)法開(kāi)放給OpenJDK使用,其中最主要的部份就是JMX中的可選元件SNMP部份的代碼。因此這些不能開(kāi)放的源代碼 將它作成plug,以供OpenJDK編譯時(shí)使用,你也可以選擇不要使用plug。而Icedtea則為這些不完整的部分開(kāi)發(fā)了相同功能的源代碼 (OpenJDK6),促使OpenJDK更加完整。

總結(jié)

其他區(qū)別歡迎各位指出

以上就是openjdk與Oraclejdk的區(qū)別的詳細(xì)內(nèi)容,更多關(guān)于openjdk與Oraclejdk的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java自定義過(guò)濾器和攔截器實(shí)現(xiàn)ThreadLocal線程封閉

    Java自定義過(guò)濾器和攔截器實(shí)現(xiàn)ThreadLocal線程封閉

    本文主要介紹了Java自定義過(guò)濾器和攔截器實(shí)現(xiàn)ThreadLocal線程封閉,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 詳解Java的設(shè)計(jì)模式編程中的原型模式

    詳解Java的設(shè)計(jì)模式編程中的原型模式

    這篇文章主要介紹了Java的設(shè)計(jì)模式編程中的原型模式,處理對(duì)象復(fù)制時(shí)要特別注意淺拷貝和深拷貝的問(wèn)題,需要的朋友可以參考下
    2016-02-02
  • Java中通過(guò)三級(jí)緩存解決Spring循環(huán)依賴(lài)詳解

    Java中通過(guò)三級(jí)緩存解決Spring循環(huán)依賴(lài)詳解

    這篇文章主要介紹了Java中通過(guò)三級(jí)緩存解決Spring循環(huán)依賴(lài)詳解,當(dāng)出現(xiàn)兩個(gè)或多個(gè) Bean 在初始化時(shí)相互依賴(lài)的情況時(shí),Spring Boot 會(huì)將其中一個(gè) Bean 提前暴露出來(lái),以便其他 Bean 能夠在初始化時(shí)正確地引用它,這一策略能有效避免循環(huán)依賴(lài)導(dǎo)致的問(wèn)題,需要的朋友可以參考下
    2023-09-09
  • Sentinel熱點(diǎn)規(guī)則示例詳解分析

    Sentinel熱點(diǎn)規(guī)則示例詳解分析

    這篇文章主要介紹了何為熱點(diǎn)?熱點(diǎn)即經(jīng)常訪問(wèn)的數(shù)據(jù)。很多時(shí)候我們希望統(tǒng)計(jì)某個(gè)熱點(diǎn)數(shù)據(jù)中訪問(wèn)頻次最高的 Top K 數(shù)據(jù),并對(duì)其訪問(wèn)進(jìn)行限制
    2021-09-09
  • springboot項(xiàng)目開(kāi)啟https協(xié)議的項(xiàng)目實(shí)現(xiàn)

    springboot項(xiàng)目開(kāi)啟https協(xié)議的項(xiàng)目實(shí)現(xiàn)

    本文主要介紹了springboot項(xiàng)目開(kāi)啟https協(xié)議的項(xiàng)目實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Spring事件監(jiān)聽(tīng)詳解

    Spring事件監(jiān)聽(tīng)詳解

    這篇文章主要介紹了Spring事件監(jiān)聽(tīng)詳解,文中有非常詳細(xì)的圖文解說(shuō)及代碼示例,對(duì)正在學(xué)習(xí)java Spring的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • Spring Boot基礎(chǔ)學(xué)習(xí)之Mybatis操作中使用Redis做緩存詳解

    Spring Boot基礎(chǔ)學(xué)習(xí)之Mybatis操作中使用Redis做緩存詳解

    這篇文章主要給大家介紹了關(guān)于Spring Boot基礎(chǔ)學(xué)習(xí)之Mybatis操作中使用Redis做緩存的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用spring boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧
    2018-11-11
  • B/S與C/S架構(gòu)的區(qū)別介紹

    B/S與C/S架構(gòu)的區(qū)別介紹

    本文詳細(xì)講解了B/S與C/S架構(gòu)的區(qū)別,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • Java搶紅包的紅包生成算法

    Java搶紅包的紅包生成算法

    現(xiàn)在日常生活中搶紅包已經(jīng)成了日常游戲,本篇文章主要介紹了Java搶紅包的紅包生成算法,具有一定的參考價(jià)值,有需要的可以了解一下。
    2016-11-11
  • Spring注解驅(qū)動(dòng)開(kāi)發(fā)實(shí)現(xiàn)屬性賦值

    Spring注解驅(qū)動(dòng)開(kāi)發(fā)實(shí)現(xiàn)屬性賦值

    這篇文章主要介紹了Spring注解驅(qū)動(dòng)開(kāi)發(fā)實(shí)現(xiàn)屬性賦值,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04

最新評(píng)論