轉載自網絡javascript
Java這個語言很神奇:java
像C、C++ 他們通過一次編譯以後直接能夠編譯成操做系統瞭解的類型,能夠直接執行的 因此他們是編譯型的語言。沒有通過第二次的處理 而Java不同他首先由編譯器編譯成.class類型的文件,這個是java本身類型的文件 而後在經過虛擬機(JVM)從.class文件中讀一行解釋執行一行,因此他是解釋型的語言,而因爲java對於多種不一樣的操做系統有不一樣的JVM因此 Java實現了真正意義上的跨平臺! 網絡
請觀看下面兩張圖 瞭解一下Java的虛擬機機制:jvm
Java的編譯-->解釋-->執行過程優化
Java的虛擬機 spa
今天聽到同事在討論java是哪一種類型的語言(編譯型、解釋型),之前稍微有些接觸,可是概念比較模糊,爲了避免至於讓別人的思想左右本身,因此查了些資料,找到了不少熱心網友給出的答案,終於有些明白。這裏先給出編譯型語言和解釋型語言的定義和區別。操作系統
我的認爲,java是解釋型的語言,由於雖然java也須要編譯,編譯成.class文件,可是並非機器能夠識別的語言,而是字節碼,最終仍是須要 jvm的解釋,才能在各個平臺執行,這同時也是java跨平臺的緣由。因此但是說java便是編譯型的,也是解釋型,可是假如非要歸類的話,從概念上的定義,恐怕java應該歸到解釋型的語言中。翻譯