您好,歡迎來到賦能網(wǎng)!

Java程序運(yùn)行原理中JRE和JDK和JVM的關(guān)系

賦能網(wǎng) 2023-05-10 69


    要了解java程序運(yùn)行原理,首先需要了解知道jre、jdk、jvm這三者是什么,他們之間又有什么聯(lián)系。

    JRE(JavaRuntimeEnvironment,Java運(yùn)行環(huán)境),也就是Java平臺(tái)。所有的Java 程序都要在JRE下才能運(yùn)行。

    JDK(Java Development Kit,Java開發(fā)工具包)是程序開發(fā)者用來編譯、調(diào)試Java程序用的開發(fā)工具包。JDK工具也是Java程序,也需要JRE才能運(yùn)行。為了保持JDK的獨(dú)立性和完整性,在JDK的安裝過程中,JRE也是安裝的一部分。所以,在JDK的安裝目錄下有一個(gè)名為jre的目錄,用于存放JRE文件。

    JVM(JavaVirtualMachine,Java虛擬機(jī))是JRE的一部分。它是一個(gè)虛構(gòu)出來的計(jì)算機(jī),是通過在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能來實(shí)現(xiàn)的。JVM有自己完善的硬件架構(gòu),如處理器、堆棧、寄存器等,還具有相應(yīng)的指令系統(tǒng)。Java語言重要的特點(diǎn)就是跨平臺(tái)運(yùn)行。使用JVM就是為了支持與操作系統(tǒng)無關(guān),實(shí)現(xiàn)跨平臺(tái)。

    Java開發(fā)的運(yùn)行大致分為以下三步:編寫源文件、編譯以及運(yùn)行。

1、編寫源文件

    編寫的代碼,稱為“源代碼”或“源碼”。一般情況下,會(huì)把源代碼保存到后綴名為.Java的文本文件里,這樣的文件叫源文件。為了方便,會(huì)保持文件名與類的名字一致(包括大小寫)。

2、編譯

    源文件是程序員編寫的,能夠輕松識(shí)別每一行代碼的意思,但是,在計(jì)算機(jī)中,CPU只能識(shí)別二進(jìn)制指令。所以,現(xiàn)在要做的工作就是,需要在源文件和計(jì)算機(jī)指令之間進(jìn)行轉(zhuǎn)換。由于Java語言的結(jié)構(gòu)和特性,設(shè)計(jì)者們先將源文件轉(zhuǎn)換成一種特殊的二進(jìn)制文件,然后將這個(gè)二進(jìn)制文件交給Java運(yùn)行時(shí)環(huán)境(JRE)去執(zhí)行。轉(zhuǎn)換成二進(jìn)制文件的過程,叫做編譯(這個(gè)過程使用了 Javac 命令),生成的二進(jìn)制文件,叫做字節(jié)碼文件(后綴名是 .class )。如Test.Java經(jīng)過編譯就會(huì)生成Test.class。這個(gè)過程全部由Java編譯器自動(dòng)完成,不需要程序員進(jìn)行任何特殊操作。

3、運(yùn)行

    java培訓(xùn)程序的開與運(yùn)行原理,并不是將字節(jié)碼文件(.class文件)簡(jiǎn)單的交給操作系統(tǒng)去執(zhí)行,那是因?yàn)椴煌牟僮飨到y(tǒng)中數(shù)據(jù)的大小、范圍和計(jì)算方式有很大不同,會(huì)導(dǎo)致同一段代碼在不同系統(tǒng)之間運(yùn)行效果差別很大,這不是設(shè)計(jì)者們想要看到的。

  想了解更多相關(guān)資訊請(qǐng)關(guān)注Java培訓(xùn)頻道-查看更多,了解相關(guān)專業(yè)課程信息您可在線咨詢也可免費(fèi)申請(qǐng)?jiān)囌n。關(guān)注賦能網(wǎng)了解更多:4008-569-579

本文鏈接:

本文章“Java程序運(yùn)行原理中JRE和JDK和JVM的關(guān)系”已幫助 69 人

免責(zé)聲明:本信息由用戶發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識(shí)產(chǎn)權(quán)侵權(quán)的法律責(zé)任!

本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機(jī)構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開班》學(xué)校地址等機(jī)構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢熱線:4008-569-579

如果本頁(yè)不是您要找的課程,您也可以百度查找一下: