最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JVM、JRE、JDK之間的聯(lián)系及區(qū)別說明

 更新時間:2026年01月30日 09:41:03   作者:Getgit  
JVM、JRE和JDK是Java開發(fā)中三個關鍵組件,JVM是Java虛擬機,負責解析和執(zhí)行Java字節(jié)碼,JRE是Java運行環(huán)境,包含JVM和Java核心類庫,JDK是Java開發(fā)工具包,包含JRE和編譯工具,它們之間的關系是:JDK包含了JRE,JRE包含了JVM

JVM (Java Virtual Machine)

JVM(Java虛擬機)是一個可執(zhí)行Java字節(jié)碼的虛擬機進程,用于解析編譯后的字節(jié)碼文件。 JVM屏蔽了與操作系統(tǒng)平臺相關的信息,可以把字節(jié)碼解釋成具體平臺上的機器指令執(zhí)行,這也是Java的能夠 “一次編譯,到處運行” 的原因。

既然JVM是“虛擬機”的意思,那么肯定要體現(xiàn)出來 : 可以把JVM類比為一臺只針對Java程序的PC虛擬機,它通過實體計算機仿真各種計算功能來實現(xiàn),JVM有自己完善的硬件架構,如處理器,堆棧,寄存器等,還有相應的指令集.

在Java的世界中,JVM的地位就像一臺PC機器。JVM和PC物理機的宏觀關系是這樣的 :

JVM與物理PC的微觀關系是這樣的 :

Java世界中JVM與現(xiàn)實世界中的物理PC之間關系是這樣的:

注意事項:

JVM的核心任務是解釋字節(jié)碼文件,它不能運行字節(jié)碼文件。因為JVM執(zhí)行class還需要JRE下的lib類庫的支持,尤其是rt.jar,這一點非常重要。

JRE (Java Runtime Environment)

光有JVM還不能完成class的執(zhí)行,需要搭配JRE才能正常運行程序員打好的jar包。因為在解釋class的時候JVM需要調(diào)用解釋所需要的類庫lib,JRE里有運行.classjava.exe.

JRE是Java程序的運行環(huán)境,它包含JVM的標準實現(xiàn)及Java核心類庫。需要注意的是 : JRE是Java的運行環(huán)境不是開發(fā)環(huán)境。JRE不包含任何開發(fā)工具,如:編譯器、調(diào)試器等,因為JRE是面向Java程序(jar包)的,程序只需要運行不需要編譯、調(diào)試等功能。如果只需要運行一些Java程序,只需要一個JRE就足夠了,不需要安裝JDK.

在Java的世界中,JRE的地位相當于是一臺PC機器中的Windows操作系統(tǒng). Windows操作系統(tǒng)可以運行.exe格式化的應用程序對應的JRE操作系統(tǒng)用于運行.jar格式的應用程序。

綜上所述,Java世界中的JRE與現(xiàn)實世界中的PC操作系統(tǒng)之間關系是這樣的 :

JDK (Java Development Kit)

JDK是java開發(fā)工具包,它提供了編譯、運行Java程序所需的各種工具和資源,包括Java編譯器、Java運行時環(huán)境,以及常用的Java類庫等。JDK是面向程序員的。

基本上每個學java的人都會先在機器 上裝一個JDK,那它都包含哪幾部分呢?

安裝完jdk之后,切換至jdk的安裝根目錄,可以看到幾個目錄:bin、jre、src.zip、db、lib、include。

  • bin:開發(fā)工具。里面可以看到一些我們很熟悉的工具,jar、java、javac、javadoc、javap、jconsole、jhat、jmap、jstack、jstat。
  • jre:Java運行時環(huán)境。JRE包括Java虛擬機(JVM),類庫和其他支持執(zhí)行用Java編程語言編寫的程序的文件(我們開發(fā)過程中經(jīng)常使用到的核心類庫就是在/jre/lib下)。
  • src.zip:Java類庫源代碼。構成Java核心API的所有類的Java編程語言源文件,(注意不是JVM源碼)主要是想幫助開發(fā)人員學習和使用Java編程語言。
  • db:Oracle分發(fā)的Apache Derby關系數(shù)據(jù)庫。
  • lib:其他庫,開發(fā)工具所需的其他類庫和支持文件,其中就有我們比較熟悉的 dt.jartools.jar。
  • include:支持使用Java Native Interface和Java Virtual Machine(JVM)調(diào)試器接口進行本機代碼編程的C語言頭文件。

既然JDK安裝目錄中是包含JRE的,而JRE中是包含JVM的,所以電腦安裝完JDK后就具備了開發(fā)Java源文件、編譯class字節(jié)碼文件、運行jar程序的功能。JDK直接打通了程序員與Java世界的壁壘,這就導致筆者到現(xiàn)在才搞清楚它們?nèi)咧g的關系,。

JVM、JRE、JDK三者之間的聯(lián)系

綜上所述,三者關系可以用下面一個場景來總結:

程序員借助JDK可以寫好.Java源代碼,然后使用JDK自帶的javac命令將源代碼編譯為.class字節(jié)碼文件,最后使用JDK的jar -cvf命令打包為jar包,到這一步JDK的使命就完成了。

有了jar包之后,下一步就是讓jar跑起來,這一步就該JVM、JRE出場了,使用java -jar運行程序。

首先是在JRE上運行這些字節(jié)碼,具體到字節(jié)碼執(zhí)行時就需要JVM解析字節(jié)碼文件,并承擔將字節(jié)碼命令映射到CPU指令集或OS的系統(tǒng)調(diào)用。

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • SpringBoot快速搭建web項目詳細步驟總結

    SpringBoot快速搭建web項目詳細步驟總結

    這篇文章主要介紹了SpringBoot快速搭建web項目詳細步驟總結 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • SpringSecurity實現(xiàn)動態(tài)權限校驗的過程

    SpringSecurity實現(xiàn)動態(tài)權限校驗的過程

    Spring Security過濾器鏈中,AuthorizationFilter的authorizationManager是我們要找的組件,該組件的check方法已被棄用,推薦使用authorize方法,最終通過接口路徑和權限進行校驗,本文給大家介紹SpringSecurity實現(xiàn)動態(tài)權限校驗的相關知識,感興趣的朋友一起看看吧
    2025-02-02
  • java包本質及命名規(guī)范詳解

    java包本質及命名規(guī)范詳解

    這篇文章主要介紹了java包本質及命名規(guī)范,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Java中String能存儲多少個字符

    Java中String能存儲多少個字符

    本文主要介紹了Java中字符串長度的限制,Java中字符串長度的限制,
    2026-02-02
  • 新版IDEA使用Spring Initializr創(chuàng)建工程的兩種方法

    新版IDEA使用Spring Initializr創(chuàng)建工程的兩種方法

    這篇文章主要介紹了新版IDEA使用Spring Initializr創(chuàng)建工程(兩種方法,官方工具和IDEA),文中通過代碼示例和圖文結合的方式給大家講解的非常詳細,具有一定的參考價值,需要的朋友可以參考下
    2024-10-10
  • 實例講解Java的MyBatis框架對MySQL中數(shù)據(jù)的關聯(lián)查詢

    實例講解Java的MyBatis框架對MySQL中數(shù)據(jù)的關聯(lián)查詢

    這里我們來以實例講解Java的MyBatis框架對MySQL中數(shù)據(jù)的關聯(lián)查詢,包括一對多、多對一的關聯(lián)查詢以及自身關聯(lián)映射的方法等,需要的朋友可以參考下
    2016-06-06
  • RocketMQ事務消息原理與使用詳解

    RocketMQ事務消息原理與使用詳解

    RocketMQ事務消息(Transactional Message)是指應用本地事務和發(fā)送消息操作可以被定義到全局事務中,要么同時成功,要么同時失敗。RocketMQ的事務消息提供類似 X/Open XA 的分布式事務功能,通過事務消息能達到分布式事務的最終一致
    2023-02-02
  • java實現(xiàn)電話本系統(tǒng)

    java實現(xiàn)電話本系統(tǒng)

    這篇文章主要為大家詳細介紹了java實現(xiàn)電話本系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • jdbc實現(xiàn)寵物商店管理系統(tǒng)

    jdbc實現(xiàn)寵物商店管理系統(tǒng)

    這篇文章主要為大家詳細介紹了jdbc實現(xiàn)寵物商店管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • Springboot程序開啟遠程DEBUG方式

    Springboot程序開啟遠程DEBUG方式

    本文介紹了SpringBoot程序遠程debug的原理和步驟,包括在啟動時指定JVM參數(shù)、配置遠程調(diào)試、注意事項等,同時提供了配置本地和遠程調(diào)試的方法和示例,需要注意避免生產(chǎn)環(huán)境中開啟遠程debug,保護調(diào)試信息的安全性和一致性,限制調(diào)試范圍,避免資源占用問題
    2026-05-05

最新評論

共和县| 石柱| 靖远县| 应城市| 永春县| 衡山县| 沛县| 华宁县| 鄂伦春自治旗| 广南县| 军事| 重庆市| 赣榆县| 塔河县| 商丘市| 五大连池市| 龙南县| 黔东| 东光县| 丹棱县| 兴安盟| 泽州县| 苏尼特左旗| 大余县| 乌苏市| 邢台市| 星座| 天峻县| 宝鸡市| 阿坝县| 贺州市| 略阳县| 平定县| 浪卡子县| 武邑县| 娱乐| 昌吉市| 巧家县| 清流县| 南部县| 清原|