關(guān)于一次編寫(xiě),處處運(yùn)行的介紹
精華
送紅塵
2022-05-31 10:21:45
瀏覽(1623)
回復(fù)(2)
贊(0)
Java 介紹—開(kāi)始學(xué)習(xí)Java |
Java是一門(mén)很奇怪的語(yǔ)言,以c語(yǔ)言為例,c語(yǔ)言編譯器只需要把c語(yǔ)言代碼編譯為機(jī)器碼就可以直接執(zhí)行。
再以Python為例,Python只需要把代碼丟進(jìn)Python解釋器就可以直接運(yùn)行。
而Java奇怪就奇怪在,他需要兩步,他需要先將Java代碼編譯成Java字節(jié)碼(這就是一處編譯),然后需要將Java字節(jié)碼放在jvm(可以理解為Java字節(jié)碼解釋器),所以每個(gè)平臺(tái)如果有jvm,就可以執(zhí)行相同的Java字節(jié)碼,因?yàn)閖vm雖然底層實(shí)現(xiàn)有所不同,但給Java字節(jié)碼的運(yùn)行條件都是相同的。所以編譯過(guò)的Java字節(jié)碼不管是在什么平臺(tái)的jvm上都能運(yùn)行,只要這個(gè)平臺(tái)有jvm(這就是處處執(zhí)行)。
這樣設(shè)計(jì)的好處就是,編譯器只需要開(kāi)發(fā)一次,jvm由各個(gè)平臺(tái)獨(dú)自開(kāi)發(fā),Java的代碼在什么平臺(tái)都能運(yùn)行,其實(shí)這樣的特性大部分解釋器都有,比如Python也可以在多個(gè)平臺(tái)運(yùn)行。(處處執(zhí)行是來(lái)自解釋器解釋執(zhí)行的優(yōu)勢(shì))
因?yàn)镴ava是經(jīng)過(guò)編譯的,編譯的代碼效率更高,這也是大部分解釋器的缺點(diǎn),Java的編譯過(guò)程解決了解釋器的這個(gè)缺點(diǎn),使得Java既擁有解釋器的跨平臺(tái)性,又擁有了編譯器的高性能。