回覆列表
-
1 # Java架構師之路
-
2 # 此生唯一
JAVA虛擬機器,俗稱JVM(JAVA Virtual Machine)!是執行JAVA程式碼的抽象計算機!
我們知道JAVA最重要的特性就是跨平臺,藉此能讓JAVA執行在智慧手錶,手機,遊戲機,電腦等大部分的平臺上,其原因就是因為JAVA原始碼執行在JVM中,JVM提供了跨平臺實現!
為什麼JAVA能跨平臺?不同的作業系統會有不同的指令集,將高階程式語言轉化為組合語言,進一步的解釋為只有0和1機器碼由作業系統執行,而JAVA官方根據不同的作業系統定製了一套不同的JVM,能把相同的原始碼根據不同的指令集解釋為不同的機器碼以執行!真正實現了與平臺無關,讓JAVA開發者脫離底層的語言開發,而專注於業務應用開發!
JVM模擬了一套硬體計算機環境,有一套自己的位元組碼指令集,堆,棧,方法區,包括暫存器等!
在JAVA類載入和執行的時候,會把物件引用,例項物件,靜態變數,方法,類等放入不同的區域,提供執行計算式快速的存取資料!
區別於大部分其他的語言,JAVA封裝了對於記憶體的管理,透過提供的垃圾演算法(標記清除,標記整理,複製演算法等)對記憶體自動進行回收!
關於JVM的垃圾收集器,內部回收演算法,JVM如何執行等,市面上有大量的書籍,因為JVM與執行效率,吞吐量,高併發等息息相關,所以通常為JAVA技術面試的必問知識點,值得大家用功掌握,更多的技術分享,敬請關注。。
-
3 # 光明右使8787
就是把JAVA位元組碼解釋為機器語言的直譯器,JAVA雖然編譯成了位元組碼,但機器不能識別,還要進一步解釋為機器碼才能執行。這個算不上虛擬機器,就是個直譯器。和VB PHP這類直譯器沒有分別。不同平臺使用不同直譯器就能跨平臺了。
Java虛擬機器是一個可以執行Java位元組碼的虛擬機器程序。Java原始檔被編譯成能被Java虛擬機器執行的位元組碼檔案。 Java被設計成允許應用程式可以執行在任意的平臺,而不需要程式設計師為每一個平臺單獨重寫或者是重新編譯。Java虛擬機器讓這個變為可能,因為它知道底層硬體平臺的指令長度和其他特性。