java很神奇,只要我們將代碼寫好,就可以進(jìn)行代碼運(yùn)行了,可是大家總歸是有好奇心的,尤其是對(duì)于新手java來(lái)說(shuō),那Java編譯過(guò)程是什么?接下來(lái)我們就來(lái)給大家講解一下這方面的內(nèi)容。
Java 程序運(yùn)行流程如圖所示。
字節(jié)碼文件是一種和任何具體機(jī)器環(huán)境及操作系統(tǒng)環(huán)境無(wú)關(guān)的中間代碼。它是一種二進(jìn)制文件,是 Java 源文件由 Java 編譯器編譯后生成的目標(biāo)代碼文件。編程人員和計(jì)算機(jī)都無(wú)法直接讀懂字節(jié)碼文件,它必須由專用的 Java 解釋器來(lái)解釋執(zhí)行,因此 Java 是一種在編譯基礎(chǔ)上進(jìn)行解釋運(yùn)行的語(yǔ)言。
Java 解釋器負(fù)責(zé)將字節(jié)碼文件翻譯成具體硬件環(huán)境和操作系統(tǒng)平臺(tái)下的機(jī)器代碼,以便執(zhí)行。因此 Java 程序不能直接運(yùn)行在現(xiàn)有的操作系統(tǒng)平臺(tái)上,它必須運(yùn)行在被稱為 Java 虛擬機(jī)的軟件平臺(tái)之上。
Java 虛擬機(jī)(JVM)是運(yùn)行 Java 程序的軟件環(huán)境,Java 解釋器是 Java 虛擬機(jī)的一部分。在運(yùn)行 Java 程序時(shí),首先會(huì)啟動(dòng) JVM,然后由它來(lái)負(fù)責(zé)解釋執(zhí)行 Java 的字節(jié)碼程序,并且 Java 字節(jié)碼程序只能運(yùn)行于 JVM 之上。這樣利用 JVM 就可以把 Java 字節(jié)碼程序和具體的硬件平臺(tái)以及操作系統(tǒng)環(huán)境分隔開(kāi)來(lái),只要在不同的計(jì)算機(jī)上安裝了針對(duì)特定平臺(tái)的 JVM,Java 程序就可以運(yùn)行,而不用考慮當(dāng)前具體的硬件平臺(tái)及操作系統(tǒng)環(huán)境,也不用考慮字節(jié)碼文件是在何種平臺(tái)上生成的。
JVM 把這種不同軟、硬件平臺(tái)的具體差別隱藏起來(lái),從而實(shí)現(xiàn)了真正的二進(jìn)制代碼級(jí)的跨平臺(tái)移植。JVM 是 Java 平臺(tái)架構(gòu)的基礎(chǔ),Java 的跨平臺(tái)特性正是通過(guò)在 JVM 中運(yùn)行 Java 程序?qū)崿F(xiàn)的。Java 的這種運(yùn)行機(jī)制可以通過(guò)圖來(lái)說(shuō)明。
提示:Java 程序通過(guò) JVM 可以實(shí)現(xiàn)跨平臺(tái)特性,但 JVM 是不跨平臺(tái)的。也就是說(shuō),不同操作系統(tǒng)之上的 JVM 是不同的,Windows 平臺(tái)之上的 JVM 不能用在 Linux 平臺(tái),反之亦然。
總之Java 程序的運(yùn)行必須經(jīng)過(guò)編寫、編譯和運(yùn)行這3個(gè)步驟,并且在寫代碼的過(guò)程中還要保證代碼的正確性,才能實(shí)現(xiàn)代碼正確運(yùn)行哦!最后大家如果想要了解更多初識(shí)java知識(shí),敬請(qǐng)關(guān)注賦能網(wǎng)。
本文鏈接:
本文章“Java編譯過(guò)程是什么?Java編譯運(yùn)行過(guò)程詳解”已幫助 58 人
免責(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)惠》課程開(kāi)班》學(xué)校地址等機(jī)構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢熱線:4008-569-579