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

解讀JDK、JRE、JVM的區(qū)別與聯(lián)系

 更新時間:2024年08月23日 10:54:06   作者:Salute-Y  
這篇文章主要介紹了解讀JDK、JRE、JVM的區(qū)別與聯(lián)系,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

一、jdk

JDK(Java Development Kit):

jdk是Java的開發(fā)工具包,是整個java開發(fā)的核心。

其中主要包含了三方面的內(nèi)容:

  • Java程序的運(yùn)行環(huán)境-JRE
  • Java的基礎(chǔ)類庫(Java API)

Java API是Java的應(yīng)用程序接口,里面有很多已經(jīng)寫好的Java class,包含一些重要的語法結(jié)構(gòu)和基本的線程、圖形和IO等。

我們可以直接拿來使用。

Java的一些工具包(其中包含了javac源碼編譯器,還有一些其他的命令:jdb,javah,jmp等)。

在學(xué)習(xí)java之前,一般都是安裝運(yùn)行環(huán)境,下載一個JDK。在jdk中有很多的文件,其中最主要的就是四個文件:bin、include、jre、lib。

  • bin:bin目錄下有大量的可運(yùn)行exe文件,其中最主要的就是javac.exe文件,源碼編譯器。
  • include:包含一些頭文件,用于java和JVM進(jìn)行交互。
  • lib:類庫。
  • jre:java程序運(yùn)行環(huán)境。

在jre目錄底下,還有一個bin文件和lib文件,這兩個文件與之前的不同,這里的bin文件可以認(rèn)為就是jvm,lib文件就是jvm運(yùn)行時需要的類庫。

JVM+ lib庫=JRE。

二、jre

JRE(Java Runtime Environment—java運(yùn)行環(huán)境):

jre是java程序的運(yùn)行環(huán)境,所有的Java程序必須依賴jre才能運(yùn)行。jre中包含jvm,但是只有jvm是不能完全解釋字節(jié)碼文件的,還需要一些核心的類庫。

這些類庫都存放在jre目錄底下的lib文件中。所以jre就包括了兩部分:解釋字節(jié)碼的jvm+一些核心類庫(存放于lib文件中)

三、jvm

JVM(Java Virtual Machine–java虛擬機(jī)):

jvm是jre的一部分,jvm是虛擬出的一臺計算機(jī),這臺計算機(jī)不關(guān)心java源代碼如何寫的,它只關(guān)心java源程序編譯出的字節(jié)碼文件,jvm是java程序能實現(xiàn)跨平臺的核心,它不關(guān)心真實計算機(jī),也不關(guān)心操作系統(tǒng)等等,就像一個中間平臺,只負(fù)責(zé)將字節(jié)碼文件轉(zhuǎn)換成當(dāng)前計算機(jī)能理解的CPU指令集或系統(tǒng)調(diào)用。

jvm有自己完善的硬件架構(gòu),如處理器、棧區(qū)、寄存器等。

總結(jié):jvm是一個虛擬的中間平臺,只負(fù)責(zé)將編譯后的字節(jié)碼文件轉(zhuǎn)換成當(dāng)前計算機(jī)能理解并執(zhí)行的指令,其他都不關(guān)心。jvm是java“一次編譯,到處執(zhí)行”的原因。

四、關(guān)系圖

五、一個Java程序的執(zhí)行過程

  • 我們利用JDK(通過調(diào)用一些Java API)寫出java源程序,然后儲存在.java文件中。
  • JDK中的源碼編譯器javac將源代碼編譯成java字節(jié)碼,儲存在.class文件中。
  • JRE加載、驗證、執(zhí)行Java字節(jié)碼。
  • JVM將字節(jié)碼文件解析為機(jī)器碼映射到CPU指令集或者供系統(tǒng)調(diào)用。

總結(jié)

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

相關(guān)文章

  • Java數(shù)據(jù)結(jié)構(gòu)之紅黑樹的原理及實現(xiàn)

    Java數(shù)據(jù)結(jié)構(gòu)之紅黑樹的原理及實現(xiàn)

    紅黑樹是一種特殊的二叉查找樹,每個結(jié)點(diǎn)都要儲存位表示結(jié)點(diǎn)的顏色,或紅或黑。本文將通過示例為大家詳細(xì)講講紅黑樹的原理及Java實現(xiàn),感興趣的可以了解一下
    2022-09-09
  • SpringBoot 自動配置原理及源碼解析

    SpringBoot 自動配置原理及源碼解析

    SpringBoot 在項目啟動的時候封裝了創(chuàng)建對象的方法,無需我們手動配置,接下來通過本文給大家介紹SpringBoot 自動配置原理解析及源碼展示,感興趣的朋友一起看看吧
    2021-06-06
  • IntelliJ IDEA 如何配置git的操作方法

    IntelliJ IDEA 如何配置git的操作方法

    這篇文章主要介紹了IntelliJ IDEA 如何配置git,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • 解決jar包rar壓縮后無法運(yùn)行問題

    解決jar包rar壓縮后無法運(yùn)行問題

    這篇文章主要介紹了解決jar包rar壓縮后無法運(yùn)行問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • mybatis高級映射一對多查詢實現(xiàn)代碼

    mybatis高級映射一對多查詢實現(xiàn)代碼

    本篇文章主要介紹了mybatis高級映射一對多查詢實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-04-04
  • Java內(nèi)存模型的深入講解

    Java內(nèi)存模型的深入講解

    這篇文章主要給大家介紹了關(guān)于Java內(nèi)存模型的相關(guān)資料,我們常說的JVM內(nèi)存模式指的是JVM的內(nèi)存分區(qū),而Java內(nèi)存模式是一種虛擬機(jī)規(guī)范,需要的朋友可以參考下
    2021-07-07
  • Java觀察者設(shè)計模式詳解

    Java觀察者設(shè)計模式詳解

    這篇文章主要為大家詳細(xì)介紹了Java觀察者設(shè)計模式,對觀察者設(shè)計模式進(jìn)行分析理解,感興趣的小伙伴們可以參考一下
    2016-02-02
  • SpringBoot自定義錯誤處理邏輯詳解

    SpringBoot自定義錯誤處理邏輯詳解

    這篇文章主要介紹了SpringBoot自定義錯誤處理邏輯,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-10-10
  • Java教程各種接口的介紹

    Java教程各種接口的介紹

    Java教程各種接口的介紹,需要的朋友可以參考一下
    2013-02-02
  • 詳解java數(shù)組進(jìn)行翻轉(zhuǎn)的方法有哪些

    詳解java數(shù)組進(jìn)行翻轉(zhuǎn)的方法有哪些

    這篇文章主要介紹了詳解java數(shù)組進(jìn)行翻轉(zhuǎn)的方法有哪些,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01

最新評論