Java為什么可以在多個(gè)平臺上運(yùn)行?
Java兩種核心機(jī)制,第一個(gè)就是Java虛擬機(jī)(JVM)我們程序員編寫源代碼,也就是.java文件,然后必然要編譯成.class文件,Java之所以是一次編譯,到處運(yùn)行,就是因?yàn)樵谶\(yùn)行的時(shí)候,Java虛擬機(jī)拿出.class里面代碼來一行一行的解釋,翻譯給操作系統(tǒng),因?yàn)椴僮飨到y(tǒng)本身是不認(rèn)識Java的,是經(jīng)過的虛擬機(jī)的翻譯,一行一行的解釋著執(zhí)行,而且對于不同的操作系統(tǒng)平臺,有不同的Java虛擬機(jī),因此,Java才真正的實(shí)現(xiàn)了跨平臺,一次編譯,隨處運(yùn)行。
對于我們程序員這一端,是一樣的,我們面對的就是.java和.class文件,程序要想執(zhí)行,需要建立在操作系統(tǒng)環(huán)境之上,Java不是操作系統(tǒng)本地語言,Java又不是C,所以操作系統(tǒng)直接執(zhí)行不了,那么在我們程序和操作系統(tǒng)的中間,打了一層Java虛擬機(jī)。ok?