亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java環(huán)境中的JDK、JVM、JRE詳細(xì)介紹

 更新時(shí)間:2016年11月26日 14:39:34   作者:BigFengFeng  
這篇文章主要介紹了java環(huán)境中的JDK、JVM、JRE詳細(xì)介紹的相關(guān)資料,對(duì)于初學(xué)者還是有必要了解下,細(xì)致說(shuō)明他們是什么,需要的朋友可以參考下

java環(huán)境中的JDK、JVM、JRE

  近來(lái)小看了下Android,撲面而來(lái)一堆概念JDK、JVM、JRE、SDK、NDK、ADT??|了一下,其中JDK、JVM、JRE是java環(huán)境的東西,而SDK、NDK、ADT是Android開發(fā)用到的東西。下面來(lái)區(qū)別一下JDK、JVM、JRE。

小貼士:mac下裝完java后,它在哪里呢,見下圖

首先來(lái)說(shuō)一下JDK

  JDK(Java Development Kit) 是 Java 語(yǔ)言的軟件開發(fā)工具包(SDK)。

  JDK是整個(gè)JAVA的核心,包括了Java運(yùn)行環(huán)境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基礎(chǔ)的類庫(kù)(即Java API )。

  有以下三種版本:

  SE(J2SE),standard edition,標(biāo)準(zhǔn)版,是我們通常用的一個(gè)版本,從JDK 5.0開始,改名為Java SE。

  EE(J2EE),enterprise edition,企業(yè)版,使用這種JDK開發(fā)J2EE應(yīng)用程序,從JDK 5.0開始,改名為Java EE。

  ME(J2ME),micro edition,主要用于移動(dòng)設(shè)備、嵌入式設(shè)備上的java應(yīng)用程序,從JDK 5.0開始,改名為Java ME。

再來(lái)談?wù)凧RE

  JRE為Java Runtime Environment的簡(jiǎn)稱,Java Runtime Environment(包括Java Plug-in)是Sun的產(chǎn)品,包括兩部分:Java Runtime Environment和Java Plug-in。JavaRuntimeEnvironment(JRE)是可以在其上運(yùn)行、測(cè)試和傳輸應(yīng)用程序的Java平臺(tái)。它包括Java虛擬機(jī)(jvm)、Java核心類庫(kù)和支持文件。它不包含開發(fā)工具(JDK)--編譯器、調(diào)試器和其它工具。JRE需要輔助軟件--Java Plug-in--以便在瀏覽器中運(yùn)行applet。

沒(méi)有JDK的話,無(wú)法編譯Java程序,但在有JRE環(huán)境的系統(tǒng)上可以運(yùn)行程序。所以當(dāng)你只需要運(yùn)行Java程序或Applet,下載并安裝JRE即可。如果你要自行開發(fā) Java軟件,請(qǐng)下載JDK。

最后再來(lái)了解一下JVM

  JVM即Java Virtual Machine(Java虛擬機(jī)),JVM是一種用于計(jì)算設(shè)備的規(guī)范,它是一個(gè)虛構(gòu)出來(lái)的計(jì)算機(jī),是通過(guò)在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能來(lái)實(shí)現(xiàn)的。
Java語(yǔ)言的一個(gè)非常重要的特點(diǎn)就是與平臺(tái)的無(wú)關(guān)性。而使用Java虛擬機(jī)是實(shí)現(xiàn)這一特點(diǎn)的關(guān)鍵。一般的高級(jí)語(yǔ)言如果要在不同的平臺(tái)上運(yùn)行,至少需要編譯成不同的目標(biāo)代碼。而引入Java語(yǔ)言虛擬機(jī)后,Java語(yǔ)言在不同平臺(tái)上運(yùn)行時(shí)不需要重新編譯。Java語(yǔ)言使用Java虛擬機(jī)屏蔽了與具體平臺(tái)相關(guān)的信息,使得Java語(yǔ)言編譯程序只需生成在Java虛擬機(jī)上運(yùn)行的目標(biāo)代碼(字節(jié)碼),就可以在多種平臺(tái)上不加修改地運(yùn)行。Java虛擬機(jī)在執(zhí)行字節(jié)碼時(shí),把字節(jié)碼解釋成具體平臺(tái)上的機(jī)器指令執(zhí)行。這就是Java的能夠“一次編譯,到處運(yùn)行”的原因。

  這是三者的關(guān)系圖:

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

JVM(Java Virtual Machine),即Java虛擬機(jī)

  JVM屏蔽了與具體操作系統(tǒng)平臺(tái)相關(guān)的信息,使Java程序只需生成在Java虛擬機(jī)上運(yùn)行的目標(biāo)代碼(字節(jié)碼),就可以在多種平臺(tái)上不加修改地運(yùn)行。JVM在執(zhí)行字節(jié)碼時(shí),實(shí)際上最終還是把字節(jié)碼解釋成具體平臺(tái)上的機(jī)器指令執(zhí)行。編譯虛擬機(jī)的指令集與編譯微處理器的指令集非常類似。

  JVM是Java語(yǔ)言跨平臺(tái)(這里的“平臺(tái)”是指不同的操作系統(tǒng))的基礎(chǔ),要想在不同的操作系統(tǒng)上運(yùn)行Java程序,就需要在不同操作系統(tǒng)上安裝對(duì)應(yīng)的JVM。所以,JVM有Windows版本、MAC版本、Linux版本等。

JRE(Java Runtime Environment),即Java運(yùn)行環(huán)境

  JRE包括Java虛擬機(jī)和Java程序所需的核心類庫(kù)。如果要想運(yùn)行一個(gè)開發(fā)好的Java程序,只需要在計(jì)算機(jī)中安裝JRE即可。

  總結(jié):JRE=JVM+Java類庫(kù)

JDK(Java Development Kit),即Java開發(fā)工具包

  JDK是提供給Java開發(fā)人員使用的,包含了JRE和一些Java開發(fā)工具,如編譯工具(javac.exe)、打包工具(jar.exe)等。所以安裝了JDK就不需要再安裝JRE了。作為Java語(yǔ)言的學(xué)習(xí)者,我們必須安裝JDK,沒(méi)有JDK,我們是沒(méi)有辦法編譯和運(yùn)行Java代碼的,這也是幾乎所有的Java入門教程推薦我們安裝JDK的原因。

  總結(jié):JDK=JRE+Java開發(fā)工具

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • 詳解java中String值為空字符串與null的判斷方法

    詳解java中String值為空字符串與null的判斷方法

    這篇文章主要介紹了詳解java中String值為空字符串與null的判斷方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Java代碼中與Lua相互調(diào)用實(shí)現(xiàn)詳解

    Java代碼中與Lua相互調(diào)用實(shí)現(xiàn)詳解

    這篇文章主要為大家介紹了Java代碼中與Lua相互調(diào)用實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • JAVA序列化Serializable及Externalizable區(qū)別詳解

    JAVA序列化Serializable及Externalizable區(qū)別詳解

    這篇文章主要介紹了JAVA序列化Serializable及Externalizable區(qū)別詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • MyBatis3.X復(fù)雜Sql查詢的語(yǔ)句

    MyBatis3.X復(fù)雜Sql查詢的語(yǔ)句

    這篇文章主要介紹了MyBatis3.X復(fù)雜Sql查詢的相關(guān)資料,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • Jenkins遠(yuǎn)程部署war包過(guò)程圖解

    Jenkins遠(yuǎn)程部署war包過(guò)程圖解

    這篇文章主要介紹了Jenkins遠(yuǎn)程部署war包過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 詳解Java如何給按鈕添加監(jiān)視器

    詳解Java如何給按鈕添加監(jiān)視器

    這篇文章主要介紹了詳解Java如何給按鈕添加監(jiān)視器,使用匿名對(duì)象、實(shí)現(xiàn)接口、實(shí)現(xiàn)類、Lambda表達(dá)式、注解等,需要的朋友可以參考下
    2023-04-04
  • MybatisPlus開啟、關(guān)閉二級(jí)緩存方法

    MybatisPlus開啟、關(guān)閉二級(jí)緩存方法

    本文主要介紹了MybatisPlus開啟、關(guān)閉二級(jí)緩存方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • java中的Serializable、transient關(guān)鍵字詳解

    java中的Serializable、transient關(guān)鍵字詳解

    這篇文章主要介紹了java中的Serializable、transient關(guān)鍵字詳解,序列化只會(huì)保存屬性值,不會(huì)保存方法,通過(guò)反序列化可以把序列化后的內(nèi)容恢復(fù)成對(duì)象,需要的朋友可以參考下
    2023-09-09
  • java學(xué)生信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    java學(xué)生信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了java學(xué)生信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • servlet的常見注冊(cè)方式總結(jié)

    servlet的常見注冊(cè)方式總結(jié)

    servlet大家都不陌生,當(dāng)開發(fā)?Web?應(yīng)用程序時(shí),注冊(cè)?Servlet?是一個(gè)常見的任務(wù),本文將介紹一些常見的?Servlet?注冊(cè)方法,希望對(duì)大家有所幫助
    2023-10-10

最新評(píng)論