首頁>Club>
什麼是Java虛擬機器?為什麼Java被稱作是“平臺無關的程式語言”?
11
回覆列表
  • 1 # Java架構師之路

    Java虛擬機器是一個可以執行Java位元組碼的虛擬機器程序。Java原始檔被編譯成能被Java虛擬機器執行的位元組碼檔案。 Java被設計成允許應用程式可以執行在任意的平臺,而不需要程式設計師為每一個平臺單獨重寫或者是重新編譯。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這類直譯器沒有分別。不同平臺使用不同直譯器就能跨平臺了。

  • 中秋節和大豐收的關聯?
  • 選膝上型電腦,選厚本好還是薄本啊,糾結啊?