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

全方位解讀JDK和JRE的區(qū)別及聯(lián)系

 更新時(shí)間:2024年03月26日 10:02:42   作者:振華OPPO  
這篇文章主要介紹了JDK和JRE的區(qū)別及聯(lián)系,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

大家應(yīng)該都知道JDK和JRE是什么的縮寫(xiě),但是當(dāng)面試官問(wèn)道 “請(qǐng)用你所學(xué)的java知識(shí),告訴我JDK是干什么的?” , “JRE有什么作用?” , “這兩者有什么區(qū)別和聯(lián)系?” 等問(wèn)題時(shí),可能就說(shuō)的不是很明白了。

下面我就詳細(xì)講述一下JDK和JRE之間的區(qū)別和聯(lián)系,為大家徹底理清JDK和JRE相關(guān)的知識(shí)。

話不多說(shuō),先上圖:

從圖中可以看出JDK是整個(gè)JAVA的核心,包括了Java運(yùn)行環(huán)境JRE(Java Runtime Envirnment)、一堆Java開(kāi)發(fā)工具(javac/java/jdb等)和Java基礎(chǔ)的類庫(kù)(即Java API 包),下面開(kāi)始揭開(kāi)JDK和JRE的神秘面紗。

一、概念

JDK全稱為Java Development Kit,顧名思義是java開(kāi)發(fā)工具包,是程序員使用java語(yǔ)言編寫(xiě)java程序所需的開(kāi)發(fā)工具包。

JRE全稱為Java Runtime Environment,顧名思義是java運(yùn)行時(shí)的環(huán)境,包含了java虛擬機(jī),java基礎(chǔ)類庫(kù),是使用java語(yǔ)言編寫(xiě)的程序運(yùn)行所需要的軟件環(huán)境。

二、區(qū)別

1、面向人群不同

JDK是提供給程序員使用的。JRE是提供給想運(yùn)行java程序的用戶使用的。

2、重要程度不同

  • 如果你需要編寫(xiě)java程序,需要安裝JDK。
  • 如果你需要運(yùn)行java程序,只需要安裝JRE就可以了。

3、安裝目錄不同

如果安裝JDK,電腦會(huì)有兩套JRE,一套是JDK中的JRE,位于 \jre 目錄下。

另外一套是JRE自己的,在下載安裝時(shí)默認(rèn)位于 C:\Program Files\Java\jre目錄下。

在這里博主當(dāng)時(shí)安裝JRE時(shí)是放到了D盤(pán),如圖:

  • E:\Java\jre

  • D:\Java\jre

如果只安裝JRE,會(huì)默認(rèn)在 C:\Program Files\Java 目錄下安裝唯一的一套JRE,位置可以選擇,這里博主放到了D盤(pán):

三、聯(lián)系

1、包含關(guān)系

JDK包含了JRE,同時(shí)還包含了編譯java源碼的編譯器javac,還包含了很多java程序調(diào)試和分析的工具(JConsole,Web Services等工具軟件),還包含了Java基礎(chǔ)的類庫(kù)(即Java API 包括rt.jar)。

2、執(zhí)行關(guān)系

在這里首先就要提到JVM,JVM(Java Virtual Machine)就是我們常說(shuō)的java虛擬機(jī),它是整個(gè)java實(shí)現(xiàn)跨平臺(tái)的最核心的部分,所有的java程序會(huì)首先被編譯為.class的類文件,這種類文件可以在虛擬機(jī)上執(zhí)行。

也就是說(shuō)class并不直接與機(jī)器的操作系統(tǒng)相對(duì)應(yīng),而是經(jīng)過(guò)虛擬機(jī)間接與操作系統(tǒng)交互,由虛擬機(jī)將程序解釋給本地系統(tǒng)執(zhí)行。

只有JVM還不能成class的執(zhí)行,因?yàn)樵诮忉宑lass的時(shí)候JVM需要調(diào)用解釋所需要的類庫(kù)lib,而jre包含lib類庫(kù)。

在JDK下面的的jre目錄里面有兩個(gè)文件夾bin和lib,在這里可以認(rèn)為bin里的就是jvm,lib中則是jvm工作所需要的類庫(kù),而jvm和 lib和起來(lái)就稱為jre。

得到公式:jvm+lib=jre

bin目錄中的jvm

lib中的jvm類

JVM屏蔽了與具體操作系統(tǒng)平臺(tái)相關(guān)的信息,使得Java程序只需生成在Java虛擬機(jī)上運(yùn)行的目標(biāo)代碼(字節(jié)碼),就可以在多種平臺(tái)上不加修改地運(yùn)行。

總而言之,我們利用JDK(調(diào)用JAVA API)開(kāi)發(fā)了屬于我們自己的JAVA程序后,通過(guò)JDK中的編譯程序(javac)將我們的文本java文件編譯成JAVA字節(jié)碼,在JRE上運(yùn)行這些JAVA字節(jié)碼,JVM解析這些字節(jié)碼,映射到CPU指令集或OS的系統(tǒng)調(diào)用。

總結(jié)

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

相關(guān)文章

  • mybatis源碼解讀之executor包懶加載功能?

    mybatis源碼解讀之executor包懶加載功能?

    這篇文章主要介紹了mybatis源碼解讀之executor包懶加載功能,mybatis的懶加載的實(shí)現(xiàn)由executor包的loader子包支持,下面文章詳細(xì)內(nèi)容需要的小伙伴可以參考一下
    2022-02-02
  • java?long?類型數(shù)據(jù)的賦值方式

    java?long?類型數(shù)據(jù)的賦值方式

    這篇文章主要介紹了java?long?類型數(shù)據(jù)的賦值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 阿里dubbo出錯(cuò)提示Thread pool is EXHAUSTED問(wèn)題及解決方法

    阿里dubbo出錯(cuò)提示Thread pool is EXHAUSTED問(wèn)題及解決方法

    這篇文章主要介紹了阿里dubbo出錯(cuò)提示Thread pool is EXHAUSTED的問(wèn)題及解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • spring boot 枚舉使用的坑整理

    spring boot 枚舉使用的坑整理

    在本篇文章里我們給大家整理了關(guān)于spring boot 枚舉使用的坑以及相關(guān)知識(shí)點(diǎn)內(nèi)容,需要的朋友們學(xué)習(xí)下。
    2019-08-08
  • 從零搭建Spring Boot腳手架整合OSS作為文件服務(wù)器的詳細(xì)教程

    從零搭建Spring Boot腳手架整合OSS作為文件服務(wù)器的詳細(xì)教程

    這篇文章主要介紹了從零搭建Spring Boot腳手架整合OSS作為文件服務(wù)器的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • springboot項(xiàng)目中配置redis詳細(xì)的教程

    springboot項(xiàng)目中配置redis詳細(xì)的教程

    Redis是一種高性能的鍵值存儲(chǔ)數(shù)據(jù)庫(kù),而Spring Boot是一個(gè)簡(jiǎn)化了開(kāi)發(fā)過(guò)程的Java框架,這篇文章主要給大家介紹了關(guān)于springboot項(xiàng)目中配置redis詳細(xì)的教程,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • 使用Java通過(guò)OAuth協(xié)議驗(yàn)證發(fā)送微博的教程

    使用Java通過(guò)OAuth協(xié)議驗(yàn)證發(fā)送微博的教程

    這篇文章主要介紹了使用Java通過(guò)OAuth協(xié)議驗(yàn)證發(fā)送微博的教程,使用到了新浪微博為Java開(kāi)放的API weibo4j,需要的朋友可以參考下
    2016-02-02
  • 解決json字符串序列化后的順序問(wèn)題

    解決json字符串序列化后的順序問(wèn)題

    這篇文章主要介紹了解決json字符串序列化后的順序問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • JAVA 筆記 ClassLoader.getResourceAsStream() 與 Class.getResourceAsStream()的區(qū)別

    JAVA 筆記 ClassLoader.getResourceAsStream() 與 Class.getResourc

    這篇文章主要介紹了JAVA 筆記 ClassLoader.getResourceAsStream() 與 Class.getResourceAsStream()的區(qū)別,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-07-07
  • 淺談一下maven優(yōu)缺點(diǎn)及使用和特點(diǎn)

    淺談一下maven優(yōu)缺點(diǎn)及使用和特點(diǎn)

    這篇文章主要介紹了淺談一下maven優(yōu)缺點(diǎn)及使用和特點(diǎn),一個(gè)項(xiàng)目管理工具軟件,那么maven項(xiàng)目有什么優(yōu)缺點(diǎn)呢,讓我們一起來(lái)看看吧
    2023-03-03

最新評(píng)論