Java語言可以說它是解釋型語言,因為Java程式碼編譯後不是機器可以辨識的語言,而是字節碼所以不能直接執行,需要jvm的解釋才能在各個平台上運行。
Java語言
Java語言可以說它是編譯型的,因為所有的Java程式碼都是要編譯的, .java不經過編譯就什麼用都沒有;也可以說它是解釋型的,因為java程式碼編譯後不能直接運行,它是解釋運行在JVM上的,所以它是解釋運行的。
但是,現在的JVM為了效率,都有一些JIT最佳化。它又會把.class的二進位程式碼編譯成本地的程式碼直接執行,所以,又是編譯的。
像C、C 他們經過一次編譯之後直接可以編譯成作業系統了解的類型,可以直接執行的 所以他們是編譯型的語言。沒有經過第二次的處理而Java不一樣他首先由編譯器編譯成.class類型的文件,這個是java自己類型的文件然後在通過虛擬機(JVM)從.class文件中讀一行解釋執行一行,所以他是解釋型的語言,而由於java對於多種不同的作業系統有不同的JVM所以Java實現了真正意義上的跨平台!
Java的虛擬機器機制
(1)java語言的編譯-->解釋--->執行過程
(2)java的虛擬機器
#編譯型語言與解釋型語言
#編譯型語言:把做好的原始程式全部編譯成二進位程式碼的運行程式。然後,可直接執行這個程式。
解釋型語言:把做好的原始程式翻譯一句,然後執行一句,直到結束!
區別
編譯型語言,執行速度快、效率高;依賴編譯器、跨平台性差些。
解譯型語言,執行速度慢、效率低;依賴解譯器、跨平台性佳。
總結
個人認為,java是解釋型的語言,因為雖然java也需要編譯,編譯成.class文件,但是並不是機器可以辨識的語言,而是字節碼,最終還是需要jvm的解釋,才能在各個平台執行,這同時也是java跨平台的原因。所以可是說java即是編譯型的,也是解釋型,但是假如非要歸類的話,從概念上的定義,恐怕java應該歸到解釋型的語言中。
以上是java屬於什麼類型語言的詳細內容。更多資訊請關注PHP中文網其他相關文章!