什麼是Java虛擬機?爲什麼Java被稱作是「平台無關的程式語言」?

Java架構師之路

JAVA虛擬機,俗稱JVM(JAVA Virtual Machine)!是運行JAVA代碼的抽象計算機!

我們知道JAVA最重要的特性就是跨平臺,藉此能讓JAVA運行在智能手錶,手機,遊戲機,電腦等大部分的平臺上,其原因就是因為JAVA源碼運行在JVM中,JVM提供了跨平臺實現!


為什麼JAVA能跨平臺?不同的操作系統會有不同的指令集,將高級編程語言轉化為彙編語言,進一步的解釋為只有0和1機器碼由操作系統執行,而JAVA官方根據不同的操作系統定製了一套不同的JVM,能把相同的源碼根據不同的指令集解釋為不同的機器碼以執行!真正實現了與平臺無關,讓JAVA開發者脫離底層的語言開發,而專注於業務應用開發!

JVM模擬了一套硬件計算機環境,有一套自己的字節碼指令集,堆,棧,方法區,包括寄存器等!


在JAVA類加載和運行的時候,會把對象引用,實例對象,靜態變量,方法,類等放入不同的區域,提供運行計算式快速的存取數據!

區別於大部分其他的語言,JAVA封裝了對於內存的管理,通過提供的垃圾算法(標記清除,標記整理,複製算法等)對內存自動進行回收!

關於JVM的垃圾收集器,內部回收算法,JVM如何運行等,市面上有大量的書籍,因為JVM與運行效率,吞吐量,高併發等息息相關,所以通常為JAVA技術面試的必問知識點,值得大家用功掌握,更多的技術分享,敬請關注。。


謝逅架構

Java虛擬機是一個可以執行Java字節碼的虛擬機進程。Java源文件被編譯成能被Java虛擬機執行的字節碼文件。 Java被設計成允許應用程序可以運行在任意的平臺,而不需要程序員為每一個平臺單獨重寫或者是重新編譯。Java虛擬機讓這個變為可能,因為它知道底層硬件平臺的指令長度和其他特性。


Java架構師之路

就是把JAVA字節碼解釋為機器語言的解釋器,JAVA雖然編譯成了字節碼,但機器不能識別,還要進一步解釋為機器碼才能執行。這個算不上虛擬機,就是個解釋器。和VB PHP這類解釋器沒有分別。不同平臺使用不同解釋器就能跨平臺了。


分享到:


相關文章: