首先我們要瞭解到,JAVA究竟是用直譯器還是編譯器來翻譯程式的,而這個問題的答案其實是都有。
傳統編譯器會把原始程式通過語法跟語譯的分析把他們轉換為IR,也就是所謂中間碼,而IR格式已經與組合語言相近了,之後的步驟都是在最佳化及產生目的碼。
而直譯器則會讀入原始程式後一行一行的解釋並執行,導致他的速度相較之下較慢。
JAVA則不同其他程式語言,為了達到他的跨平台性,他採用了上述兩種混和的模式--取出編譯器中與機器無關的處理程序,後面交由JVM直譯器來執行。
1.JVM
JVM的工作就是實現Java語言的跨平台特性。
意即只要是有安裝 JVM 的電腦,不論何種作業系統,或是何種瀏覽器,使用 Java 語言寫出來的程式都能在作業系統和瀏覽器上正確的被執行。而使用Java虛擬機器是實現這一特點的關鍵。一般的高階語言如果要在不同的平臺上執行,至少需要編譯成不同的目的碼。而引入Java語言虛擬機器後,Java語言在不同平臺上執行時不需要重新編譯。Java語言使用Java虛擬機器遮蔽了與具體平臺相關的資訊,使得Java語言編譯程式只需生成在Java虛擬機器上執行的目的碼(位元組碼),就可以在多種平臺上不加修改地執行。Java虛擬機器在執行位元組碼時,把位元組碼解釋成具體平臺上的機器指令執行。這就是Java的能夠“一次編譯,到處執行”的原因。
2.JDK
JDK 就是使用Java語言來開發程式,所需的軟體開發套件。
JDK是整個JAVA的核心,包括了Java執行環境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基礎的類庫(即Java API )。
有以下三種版本:
SE(J2SE),standard edition,標準版,是我們通常用的一個版本,從JDK 5.0開始,改名為Java SE。
EE(J2EE),enterprise edition,企業版,使用這種JDK開發J2EE應用程式,從JDK 5.0開始,改名為Java EE。
ME(J2ME),micro edition,主要用於移動裝置、嵌入式裝置上的java應用程式,從JDK 5.0開始,改名為Java ME。
一般電腦通路商都會為消費者所購買的電腦安裝上 JRE,但並不會主動安裝 JDK,這是由於JDK 對沒有開發程式需求的一般使用者來說,是沒有太大用處的。
因此如果有開發需求,都應該學會如何確認自己電腦的 JDK 版本,如果哪一天 JRE 或是 JDK 的版本更新釋出了,也要學著如何 " 汰舊換新 " 比較好!因為這樣才可以確保開發環境是維持在最新的狀態,並且正確的運行。