當前位置:編程學習大全網 - 源碼下載 - openJDK 編譯的jar包和oracleJDK編譯的能通用嗎

openJDK 編譯的jar包和oracleJDK編譯的能通用嗎

在此,Oracle與OpenJDK之間的區別

他是從組織、開源、市場等角度比較的,我這裏主要從開源、前景、相關源碼底層…等等角度分析,有興趣的朋友可以壹起來建議,學習

壹、前景

這裏我只能拋出幾個疑問點,歡迎大家壹起來解決,拋出疑問

1、為什麽 Docker 容器的Java環境,幾乎都是 openJdk ?

2、其實ORACLE jdk是開放了大部分源碼的,openJDK是開放所有源碼的,迄今我所想看到的實現,在Oracle JDK中都是開放源碼的,Oracle JDK沒有開放的部分在哪裏?

答:已解決,Oracle JDK 沒有開放的源碼,在openJDK中的實現,這裏先說明壹下,OracleJDK只開放了不到7%,後面我會摘錄部分,只是部分哈,有興趣可以安裝壹個OpenJDK比較壹下區別

3、為什麽 OpenJDK開源了 OracleJDK不想開源的東西,

二、開源

open-source,開源,這是壹種***享,集智的概念

openJDK 是對外開放源碼的,Oracle JDK則沒有(部分開源)

三、相關底層架構,實現比較

這裏就windows版本分析

3.1-1、Oracle JDK架構1

安裝包就壹個,如圖,官網地址

在這裏插入圖片描述

3.1-2、Open JDK架構1

鏈接地址,在此

如下圖

在這裏插入圖片描述

這裏比較出 openJDK的JRE和JDK是分開放的

3.2 Oracle JDK 與 Open JDK 目錄結構比較

在這裏插入圖片描述

這裏看得出 Oracle JDK 是基於 SDK(Jar)進行版本的維護的,部分提供了源碼集

OpenJDK 是基於 package 進行版本維護,提供了所有的源碼集,目錄更清晰,部分實現還變更於與Oracle JDK 不同的包下,後面我摘出部分事例參考

還要註意 IntelliJ IDEA 中也集成了部分的 SDK,註意開發時確保正確的開發環境

3.3 JVM

openJDK已經不顯示 JVM了

在這裏插入圖片描述

3.4 不同的命令行操作

在這裏插入圖片描述

四、常用對象的不同的實現(OracleJDK源碼在OpenJDK中的不同實現)

摘錄部分,常用對象,這裏總結會有點亂(我還沒仔細地觀察真正的源碼區別)

4.1、Object

在這裏插入圖片描述

4.2、ArrayLi

  • 上一篇:SASAC是什麽單位?
  • 下一篇:全景分割源代碼
  • copyright 2024編程學習大全網