有人說Java是編譯型的。因為所有的Java代碼都是要編譯的,.java不經過編譯就無法執行。
也有人說Java是解釋型的。因為java代碼編譯後不能直接運行,它是解釋運行在JVM上的,所以它是解釋型的。對於C和C++,它們經過一次編譯之後,可以由操作系統直接執行,所以它們是編譯型語言。而Java不一樣,它首先由編譯器編譯成.class(位元組碼)文件,然後在通過JVM從.class文件中讀一行解釋執行一行,所以它是解釋型的語言。也正是由於java對於多種不同的操作系統有不同的JVM,所以實現了真正意義上的跨平台。(1)Java語言的編譯-->解釋-->運行過程
(2)JVM到這里,大家應該也都明白了。最後給出編譯型語言和解釋型語言的定義。
定義:編譯型語言:把做好的源程序全部編譯成二進制代碼的可運行程序。然後,可直接運行這個程序。
解釋型語言:把做好的源程序翻譯一句,然後執行一句,直至結束!特點:編譯型語言,執行速度快、效率高;依靠編譯器、跨平台性差。
解釋型語言,執行速度慢、效率低;依靠解釋器、跨平台性好。
2. java是編譯型還是解釋型語言
Java既是編譯型語言也是解釋型語言,但更准確地說,Java是一種先編譯後解釋執行的語言。
解釋如下:
編譯型:
解釋型:
總結:
因此,Java結合了編譯型和解釋型語言的特點,既具有編譯型語言的高效性,又具有解釋型語言的跨平台性。