Java 介紹—開始學(xué)習(xí)Java |
Java是一門很奇怪的語言,以c語言為例,c語言編譯器只需要把c語言代碼編譯為機器碼就可以直接執(zhí)行。
再以Python為例,Python只需要把代碼丟進Python解釋器就可以直接運行。
而Java奇怪就奇怪在,他需要兩步,他需要先將Java代碼編譯成Java字節(jié)碼(這就是一處編譯),然后需要將Java字節(jié)碼放在jvm(可以理解為Java字節(jié)碼解釋器),所以每個平臺如果有jvm,就可以執(zhí)行相同的Java字節(jié)碼,因為jvm雖然底層實現(xiàn)有所不同,但給Java字節(jié)碼的運行條件都是相同的。所以編譯過的Java字節(jié)碼不管是在什么平臺的jvm上都能運行,只要這個平臺有jvm(這就是處處執(zhí)行)。
這樣設(shè)計的好處就是,編譯器只需要開發(fā)一次,jvm由各個平臺獨自開發(fā),Java的代碼在什么平臺都能運行,其實這樣的特性大部分解釋器都有,比如Python也可以在多個平臺運行。(處處執(zhí)行是來自解釋器解釋執(zhí)行的優(yōu)勢)
因為Java是經(jīng)過編譯的,編譯的代碼效率更高,這也是大部分解釋器的缺點,Java的編譯過程解決了解釋器的這個缺點,使得Java既擁有解釋器的跨平臺性,又擁有了編譯器的高性能。