1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        知乎高贊:OracleJDK和OpenJDK有什么區(qū)別?網(wǎng)友:不愧是大神的回答~

        共 1831字,需瀏覽 4分鐘

         ·

        2021-09-01 15:02

        借用知乎大神RednaxelaFX的文章分享下這個問題

        Oracle JDK與OpenJDK里的JVM都是HotSpot VM。從源碼層面說,兩者基本上是同一個東西。

        從JDK7開始,Oracle JDK里的HotSpot VM,在研發(fā)的時候其實就是用放在OpenJDK的Mercurial代碼庫。也就是說跟大家從外部能實時看到的OpenJDK用的是同一個代碼庫。

        HotSpot VM只有非常非常少量的功能沒有在OpenJDK里,那部分在Oracle內(nèi)部的代碼庫里。這些私有部分都不涉及JVM的核心功能。

        所以當(dāng)一個Oracle員工要構(gòu)建OpenJDK時,他要做的事情跟外面的人一樣:從http://hg.openjdk.java.net簽出代碼,構(gòu)建。

        而當(dāng)他要構(gòu)建Oracle JDK時,他同樣需要先從http://hg.openjdk.java.net簽出OpenJDK,然后從Oracle內(nèi)部的代碼庫簽出私有的部分,放在OpenJDK代碼下的一個特定目錄里,然后構(gòu)建。

        這些HotSpot VM私有的部分主要是Java Flight Recorder的內(nèi)部實現(xiàn),以及還有沒有公開到OpenJDK的其它平臺的port,例如Oracle自己的ARM、PPC版HotSpot VM。

        JDK6的代碼,由于歷史原因,Sun JDK6跟OpenJDK6的代碼并不同步。但是其中的HotSpot VM仍然是相對一致的。OpenJDK 6里的HotSpot VM只缺了一個Oracle JDK里才有的優(yōu)化,那就是-XX:+UseCompressedString。這個功能實現(xiàn)得不太好,沒帶進(jìn)JDK7/OpenJDK7,所以這點差異沒有也罷。

        另外,Sun JDK6跟OpenJDK6在切代碼的時候不一定是在同一天,所以同一個大版本號(例如HotSpot 20.0)里面的內(nèi)容可能會稍微有點不一樣。例子之一就是Oracle/Sun JDK6u25里有完整的tiered compilation系統(tǒng)的實現(xiàn),而OpenJDK6對應(yīng)的HotSpot 20.0卻沒包含這個實現(xiàn);同一時間的OpenJDK7分支里的HotSpot VM又有這個功能,說明這個功能本身并不是啥私有功能,只是OpenJDK6切代碼的時間有可能比Oracle/Sun JDK6u25早了點。

        OpenJDK原是SunMicrosystems公司為Java平臺構(gòu)建的Java開發(fā)環(huán)境(JDK)的開源版本,完全自由,開放源碼。Sun Microsystems公司在2006年的JavaOne大會上稱將對Java開放源代碼,于2009年4月15日正式發(fā)布OpenJDK。甲骨文在2010 年收購SunMicrosystem之后接管了這個項目。

        Oracle/Sun JDK里面包含的JVM是HotSpotVM,HotSpot VM只有非常非常少量的功能沒有在OpenJDK里,那部分在Oracle內(nèi)部的代碼庫里。這些私有部分都不涉及JVM的核心功能。所以說,Oracle/Sun JDK與OpenJDK其實使用的是同一個代碼庫。

        從一個Oracle內(nèi)部員工的角度來看,當(dāng)他要構(gòu)建OracleJDK時,他同樣需要先從http://hg.openjdk.java.net簽出OpenJDK,然后從Oracle內(nèi)部的代碼庫簽出私有的部分,放在OpenJDK代碼下的一個特定目錄里,然后構(gòu)建。

        值得注意的是,Oracle JDK只發(fā)布二進(jìn)制安裝包,而OpenJDK只發(fā)布源碼。

        來源 | https://www.zhihu.com/question/19882320

        推薦閱讀:

        世界的真實格局分析,地球人類社會底層運(yùn)行原理

        不是你需要中臺,而是一名合格的架構(gòu)師(附各大廠中臺建設(shè)PPT)

        企業(yè)IT技術(shù)架構(gòu)規(guī)劃方案

        論數(shù)字化轉(zhuǎn)型——轉(zhuǎn)什么,如何轉(zhuǎn)?

        華為干部與人才發(fā)展手冊(附PPT)

        企業(yè)10大管理流程圖,數(shù)字化轉(zhuǎn)型從業(yè)者必備!

        【中臺實踐】華為大數(shù)據(jù)中臺架構(gòu)分享.pdf

        華為的數(shù)字化轉(zhuǎn)型方法論

        華為如何實施數(shù)字化轉(zhuǎn)型(附PPT)

        超詳細(xì)280頁Docker實戰(zhàn)文檔!開放下載

        華為大數(shù)據(jù)解決方案(PPT)

        瀏覽 23
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            日本中文免费精品豆花 | 高清操B视频 | 啊~嗯短裙直接进去秘书 | 日产精品久久久一区二区 | 成人免费特黄一级AAAA | 欧美乱伦一级电影 | 黄色欧美网站在线观看 | 国产无码乱伦视频 | 黄大色黄女片18第一次 | 公交np肉多荤文高h少妇 |