Java虛擬機的本質是實現Java代碼在不同操作系統下無差別執行,可以實現“一次編寫,到處執行”的效果。虛擬機就是一個虛擬的計算機,可以編譯字節碼實現不同平臺的跨越。
Java虛擬機類似于一個萬能翻譯人員(JVM),他會將你說的漢語(字節碼)翻譯成不同的語言(不同的操作系統的不同指令),比如英語(Windows),法語(Linux),德語(Unix),日語(Mac),而這些語言可以幫助他們理解你說的話,可以讓他們聽了你的話后去干一些事情(執行機器命令)。至于這個萬能翻譯人員是怎么翻譯的,你可以不用管。
這個萬能翻譯是怎么翻譯的?其實很簡單,首先他要聽懂你說的漢語(類裝載器接收),然后他要組織好完整的翻譯語言,不能出錯(字節碼校驗器校驗),最后他要把你說的漢語翻譯成別人能聽懂的外語(解釋器解釋,或者JIT編譯器編譯)。
通過這個形象的比喻,我們可以更好的理解Java虛擬機的工作原理。