1. 程式人生 > >java是編程式語言還是解釋性語言

java是編程式語言還是解釋性語言

自己 意義 ava ges 最終 優化 fortran 編譯型 .com

一、你可以說它是編譯型的。因為所有的Java代碼都是要編譯的,.java不經過編譯就什麽用都沒有。
二、你可以說它是解釋型的。因為java代碼編譯後不能直接運行,它是解釋運行在JVM上的,所以它是解釋運行的,那也就算是解釋的了。
三、但是,現在的JVM為了效率,都有一些JIT優化。它又會把.class的二進制代碼編譯為本地的代碼直接運行,所以,又是編譯的。
像C、C++ 他們經過一次編譯之後直接可以編譯成操作系統了解的類型,可以直接執行的 所以他們是編譯型的語言。沒有經過第二次的處理 而Java不一樣他首先由編譯器編譯成.class類型的文件,這個是java自己類型的文件 然後在通過虛擬機(JVM)從.class文件中讀一行解釋執行一行,所以他是解釋型的語言,而由於java對於多種不同的操作系統有不同的JVM所以 Java實現了真正意義上的跨平臺!

java語言:編譯 解釋 運行
技術分享圖片


java虛擬機:
技術分享圖片


java是解釋型的語言,因為雖然java也需要編譯,編譯成.class文件,但是並不是機器可以識別的語言,而是字節碼,最終還是需要 jvm的解釋,才能在各個平臺執行,這同時也是java跨平臺的原因。所以可是說java即是編譯型的,也是解釋型,但是假如非要歸類的話,從概念上的定義,恐怕java應該歸到解釋型的語言中。
附:
編譯型的語言包括:C、C++、Delphi、Pascal、Fortran
解釋型的語言包括:Java、Basic、javascript

java是編程式語言還是解釋性語言