Java是編譯型語(yǔ)言還是解釋型語(yǔ)言?
感謝悟空小秘書邀請(qǐng),愛(ài)你喲!
這個(gè)問(wèn)題我很有興趣回答,本人曾經(jīng)從事過(guò)Java開發(fā),首先可以明確的是,Java是不絕對(duì)的編譯型語(yǔ)言。
說(shuō)到Java就不得不提到另外一個(gè)相愛(ài)相殺的語(yǔ)言,都在軟件開發(fā)領(lǐng)域占據(jù)很重要的兩門語(yǔ)言,就是PHP,大家一定不陌生。PHP就是解釋型語(yǔ)言。因此很多人問(wèn)到PHP和Java的區(qū)別在哪里的時(shí)候,第一個(gè)想到的就是這一點(diǎn),因?yàn)榫幾g型語(yǔ)言和解釋型語(yǔ)言在效率上存在很大的不同。一方面在軟件的運(yùn)行效率,一方面在軟件的開發(fā)效率。
什么是編譯型語(yǔ)言?
為了便于大家理解,說(shuō)到這個(gè)還是需要和解釋型語(yǔ)言進(jìn)行對(duì)比才好理解。Java和PHP甚至C在某種程度上來(lái)講,都不能被計(jì)算機(jī)直接執(zhí)行,所以都存在編譯運(yùn)行的過(guò)程,生成底層二進(jìn)制的機(jī)器指令,才能被機(jī)器直接執(zhí)行。在生成的這個(gè)過(guò)程中略有不同,編譯型語(yǔ)言是把整個(gè)代碼文件一次性編譯成二進(jìn)制文件,供機(jī)器一次性執(zhí)行。解釋型語(yǔ)言是當(dāng)代碼執(zhí)行到某一句的時(shí)候,才把這一句進(jìn)行翻譯。
糾結(jié)到底是編譯型還是解釋性語(yǔ)言是很沒(méi)有必要的,站在不同的角度會(huì)有不同的看法,關(guān)鍵是能夠理解各自語(yǔ)言的運(yùn)行原理。多多突破技術(shù)難點(diǎn),編寫出更好的產(chǎn)品才是關(guān)鍵。