日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1.3.2 java程序的运行机制和jvm

發布時間:2025/6/15 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1.3.2 java程序的运行机制和jvm 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

????????java語言比較特殊,由java語言編寫的程序需要經過編譯步驟,但這個編譯步驟并不會生成特定平臺的機器碼,而是生成一種與平臺無關的字節碼(也就是*.class文件)。當然,這種字節碼不是可執行性的,必須使用java解釋器來解釋執行。因此,我們可以認為:java語言既是編譯型語言,也是解釋型語言。或者說,java語言既不是純粹的編譯型語言,也不是純粹的解釋型語言。java程序的執行過程必須經過先編譯,后解釋兩個步驟。如圖1.1所示。

????????java語言里負責解釋執行字節碼文件的是java虛擬機,既 JVM(java Virtual Machine)。JVM是可運行java字節碼文件的虛擬計算機。所有平臺上的JVM向編譯器提供相同的編程接口,而編譯器只需要面向虛擬機,生成虛擬機能理解的代碼,然后由虛擬機來解釋執行,在一些虛擬機的實現中,還會將虛擬機代碼轉換成特定系統的機器碼執行,從而提高執行效率。

????????當使用 java 編譯器編譯java程序時,生成的是與平臺無關的字節碼,這些字節碼不面向任何具體平臺,只面向JVM。不同平臺上的JVM都是不同的,但他們都提供了相同的接口。JVM 是java程序跨平臺的關鍵部分,只要為不同平臺實現了相應的虛擬機,編譯后的java字節碼就可以在該平臺上運行。顯然,相同的字節碼程序需要再不同的平臺上運行,這幾乎是“不可能的”,只有通過中間的轉換器才可以實現,JVM就是這個轉換器。

????????JVM是一個抽象的計算機,和實際的計算機一樣,它具有指令集并使用不同的存儲區域。它負責執行指令,還要管理數據、內存和寄存器。

????????提示:JVM的作用很容易理解,就像我們有兩支不同的筆,但需要把同一個筆帽套在兩支不同的筆上,只有為這兩支筆分別提供一個轉換器,這個轉換器向上的接口相同,用于適應同一個筆帽;向下的接口不同,用于適應兩支不同的筆。在這個類比中,我們可以近似地理解兩只不同的筆就是不同的操作系統,而同一個筆帽就是java字節碼程序,轉換器角色則對應JVM。類似地,我們也可以認為JVM分為向上和向下兩個部分,所有平臺上的JVM向上提供給java字節碼程序的接口完全相同,但向下適應不同平臺的接口則互不相同。

????????Sun公司制定的 java 虛擬機規范在技術上規定了JVM的統一標準,具體定義了JVM的如下細節:

  • 指令集

  • 寄存器

  • 類文件的格式

  • 垃圾回收堆

  • 存儲區

????????Sun公司制定這些規范的目的是為了提供統一的標準,最終實現java程序的平臺無關性。


轉載于:https://my.oschina.net/gooiem/blog/493575

總結

以上是生活随笔為你收集整理的1.3.2 java程序的运行机制和jvm的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。