入坑Java之路 - JVM、JRE、JDK詳細介紹

三者關係圖

  • 官網圖
    在這裏插入圖片描述
  • 架構圖
    在這裏插入圖片描述
  • 關係圖
    在這裏插入圖片描述

JDK

  • JDK是(Java Development Kit)的縮寫,指的是JAVA軟件開發工具包(SDK)。
  • JDK是整個java開發的核心,它包含了JAVA的運行環境(JVM+JAVA系統類庫)和JAVA工具。
  • 在目錄下面有五個文件夾、一個src類庫源碼壓縮包和幾個聲明文件。
  • 其他五個文件夾分別是:bin、include、lib、 jre,man以及一些版本信息文件。

JDK1.8目錄介紹

在這裏插入圖片描述
- bin:包含一些用於開發Java程序的工具,例如:編譯工具(javac.exe)、運行工具 (java.exe) 、打包工具 (jar.exe)等,最主要的是編譯器(javac.exe)。
- include:C語言的頭文件,用於支持Java程序設計。
- lib:包含開發Java程序所使用的類庫文件。
- jre:Java運行時環境的根目錄。
- man:JDK使用手冊
- src.zip:包含 Java 平臺源代碼的壓縮包。
- javafx-src.zip:包含 JavaFX 平臺源代碼的壓縮包。
- 其他:COPYRIGHT和LICENSE爲版權和簽證的說明性文檔,以及一些引用許可證。

JRE

  • JRE(Java Runtime Environment,Java運行環境),包含JVM標準實現及JAVA核心類庫。
  • JDK的安裝目錄下有一個jre目錄,裏面有兩個文件夾bin和lib。
  • 這裏可以認爲bin裏的就是jvm,lib中則是jvm工作所需要的類庫,而jvm和 lib合起來就稱爲jre。
  • JRE是Java運行環境,並不是一個開發環境,所以沒有包含任何開發工具(如編譯器和調試器)

JRE1.8目錄介紹

在這裏插入圖片描述

  • applet:用於 Applet 支持類的 jar 文件,可以放在 lib/applet 目錄中。Applet 類通過 Applet 類加載器從本地文件系統中預加載,這樣爲減小大型 Applet 的啓動時間提供了一些方式,好像從網上已經下載完成了一樣。
  • cmm:這個目錄中存放的是色彩管理配置文件,這些文件是用於 Java 2D API 執行色彩對應轉換的。
  • ext:用於 擴展 (Extensions)Java 平臺默認的安裝目錄。
  • fonts:包括平臺使用的 TrueType 字體文件。
  • images:存放一些關於光標的gif圖像。
  • jfr:Java Flight Recorder(JFR)之前是一個商業特性,現在可以直接使用,性能分析工具。
  • jli:OSX上的動態庫擴展。
  • management:jre管理屬性和管理配置文件。
  • security:這裏的文件都是用來處理安全的,包括安全策略java.policy文件和安全屬性java.security文件。
  • server:包含一些.so文件,用於java虛擬機服務端使用。

JVM

  • JVM是JavaVirtual Machine(Java虛擬機)的縮寫,它是整個java實現跨平臺的最核心的部分。
  • 所有的JAVA程序會首先被編譯爲.class的類文件,這種class類文件可以在虛擬機上運行。
  • 也就是說class並不直接被機器的的操作系統所執行,而是經過JVM解釋給操作系統執行。

JVM體系結構

  • https://blog.csdn.net/zdb292034/article/details/80732098
  • https://blog.csdn.net/u013214151/article/details/105267143
  • https://www.cnblogs.com/liululee/archive/2019/09/04/11461998.html
  • https://www.jianshu.com/p/33948336306f
  • https://baijiahao.baidu.com/s?id=1657402174344211289&wfr=spider&for=pc
  • https://blog.csdn.net/w1673492580/article/details/81840056
  • https://blog.csdn.net/csdnliuxin123524/article/details/81303711
  • https://www.cnblogs.com/zongheng14/p/12041005.html

JVM執行流程

JVM運行原理

JVM空間說明

JVM參數配置

JVMGC過程

參考文獻

  • https://blog.csdn.net/wuha0/article/details/7077243
  • https://blog.csdn.net/csj50/article/details/81533982
  • https://www.jianshu.com/p/f98c3acd8df8
  • https://blog.csdn.net/zdb292034/article/details/80732098
  • https://blog.csdn.net/qq_29073921/article/details/88856188
  • https://www.cnblogs.com/liulei5210/p/10115130.html
  • http://www.imooc.com/wenda/detail/431668
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章