Java到底是編譯還是解釋型語言?編譯和解釋型語言有什么區(qū)別?

馬克- to-win:馬克 java社區(qū):防盜版實(shí)名手機(jī)尾號: 73203。
7.java語言執(zhí)行過程與方式:
編譯型語言: 是指使用專門的編譯器、針對特定平臺(操作系統(tǒng))將某種高級語言源程序一次性“翻譯”成可被該平臺硬件運(yùn)行的機(jī)器碼(包括指令和數(shù)據(jù)),并包裝成該平臺的操作系統(tǒng)所能識別和運(yùn)行的格式。這一過程稱為“編譯”。最后生成的程序(可執(zhí)行文件)可以脫離開發(fā)環(huán)境在特定平臺上獨(dú)立執(zhí)行。比如c,優(yōu)點(diǎn)快,缺點(diǎn),移植性差。
解釋型語言: 是指使用專門的解釋器將某種高級語言源程序逐條解釋成特定平臺的機(jī)器碼指令并立即執(zhí)行,解釋一句執(zhí)行一句,這類似于會場中的“同聲翻譯”,而不進(jìn)行整體性的編譯和鏈接處理。解釋型語言相當(dāng)于把編譯型語言相對獨(dú)立的編譯和執(zhí)行過程混合到一起,而且每一次執(zhí)行時都要重復(fù)進(jìn)行“編譯”,因而執(zhí)行的效率較低。且不能脫離解釋器獨(dú)自執(zhí)行。比如javascript,優(yōu)點(diǎn):移植性強(qiáng)。缺點(diǎn):慢。




【新手可忽略不影響繼續(xù)學(xué)習(xí)】Java語言根據(jù)自身的實(shí)際需要采用了一種靈活的機(jī)制----編譯和解釋型的結(jié)合。先采用通用的Java編譯器將Java源程序編譯成為仍然是平臺無關(guān)的中間產(chǎn)物----字節(jié)碼文件,然后采用一種虛擬計算機(jī)技術(shù),稱為Java虛擬機(jī)(JVM----Java Virtual Machine),JVM運(yùn)行特定的平臺之上,再由JVM對字節(jié)碼文件進(jìn)行解釋執(zhí)行。