亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java JVM虛擬機運行機制

 更新時間:2017年03月29日 09:13:01   投稿:mrr  
JVM(Java虛擬機)一種用于計算設備的規(guī)范,可用不同的方式(軟件或硬件)加以實現(xiàn)。接下來通過本文給大家簡單介紹Java JVM虛擬機運行機制,感興趣的朋友一起看看吧

一:JVM基礎概念

         JVM(Java虛擬機)一種用于計算設備的規(guī)范,可用不同的方式(軟件或硬件)加以實現(xiàn)。編譯虛擬機的指令集與編譯微處理器的指令集非常類似。Java虛擬機包括一套字節(jié)碼指令集、一組寄存器、一個棧、一個垃圾回收堆和一個存儲方法域。

         Java虛擬機(JVM)是可運行Java代碼的假想計算機。只要根據JVM規(guī)格描述將解釋器移植到特定的計算機上,就能保證經過編譯的任何Java代碼能夠在該系統(tǒng)上運行。

下面看下Jvm的體系結構圖:

二:解釋型語言和編譯型語言的聯(lián)系與區(qū)別。

編譯型語言是通過編譯器將程序編譯成目標機器所能識別的機器碼,而解釋型語言不需要編譯過程,由該語言的解釋器讀取腳本,按照語法規(guī)則進行解釋,然后調用解釋器內建的命令(或者庫函數(shù))。例如,C語言的printf()函數(shù)經過靜態(tài)編譯后,printf()所需的所以代碼都以機器碼的形式寫入可執(zhí)行文件中,shell在執(zhí)行程序時,在指定路徑搜索該文件,然后加載器(Loader)加載該程序的ELF文件到內存中,跳轉到程序入口,將控制權交由該程序。

動態(tài)編譯的情況有些不同。由于printf()是很常用的函數(shù),系統(tǒng)將常用函數(shù)集中起來做成庫,當我寫一個Myprintf()函數(shù)時調用printf() 時,動態(tài)編譯后形成的ELF文件不會包含printf()相關的代碼,但是會有些信息告訴系統(tǒng):“我的程序將會調用printf(),因此我需要printf()的地址”。加載ELF文件后,首先運行動態(tài)連接器(ldd),ldd知道程序依賴的動態(tài)庫,系統(tǒng)中如果沒有加載該動態(tài)庫,就會通知系統(tǒng)加載該庫,并把庫函數(shù)的入口地址綁定到程序需要的地方,然后跳轉到程序入口地址,開始運行程序。這里,我們所寫的程序一經編譯,就變成特定機器的機器碼和一些附屬信息(符號表,地址,變量值等),然后通過系統(tǒng)加載運行機制就變成“動態(tài)程序”——進程。

解釋型語言的執(zhí)行過程離不開解釋器,python,perl,ruby等等。所以腳本的第一行一般是#/usr/bin/×××?!痢痢链砹烁髡Z言相應的解釋器。腳本一般由表達式(expression)和Block of expressions組成,解釋器首先要做的就是分析并理解表達式結構,形成“執(zhí)行序列”。這個“執(zhí)行序列”是中立的,不針對任何native machine,所以“可移植性”高。這里不用“字節(jié)碼”代替“執(zhí)行序列”是考慮到在jvm中有字節(jié)碼的概念,他們之間有顯著的不同。決定執(zhí)行序列是解釋器最主要的作用。假設,python輸出的函數(shù)為python_print(),那么python解釋器在“解釋”腳本時遇到這個表達式就將調用系統(tǒng)的print()函數(shù)執(zhí)行輸出操作。你也可以把腳本理解成高級配置文件,這個文件指導python解釋器如何運行,解釋器內部已經制訂了“如何”運行的若干規(guī)則。

三:Java的執(zhí)行過程

JVM執(zhí)行Java程序要比上述兩個復雜,因為它已經被稱作machine了。下圖是JVM的結構框圖。主要包含:垃圾回收器,類加載子系統(tǒng),執(zhí)行引擎,運行時數(shù)據區(qū)等。

以上所述是小編給大家介紹的Java JVM虛擬機運行機制,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

相關文章

  • 使用feign配置網絡ip代理

    使用feign配置網絡ip代理

    這篇文章主要介紹了使用feign配置網絡ip代理,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • java根據當前時間獲取yyyy-MM-dd?HH:mm:ss標準格式的時間代碼示例

    java根據當前時間獲取yyyy-MM-dd?HH:mm:ss標準格式的時間代碼示例

    在Java中可以使用java.time包中的LocalDateTime類和DateTimeFormatter類來獲取并格式化當前時間為yyyy-MM-dd?HH:mm:ss的格式,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-10-10
  • java多媒體文件編碼 處理工具類代碼實例

    java多媒體文件編碼 處理工具類代碼實例

    這篇文章主要介紹了java多媒體文件編碼 處理工具類使用解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • 詳解Java數(shù)字簽名提供XML安全

    詳解Java數(shù)字簽名提供XML安全

    在本篇文章中我們給大家整理了關于Java數(shù)字簽名提供XML安全的知識點內容,有需要的朋友們可以學習下。
    2018-08-08
  • 淺談Java中String的常用方法

    淺談Java中String的常用方法

    今天帶大家來復習一下Java中String的常用方法,文中有非常詳細的介紹,對正在學習java的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • SpringBoot bean依賴屬性配置詳細介紹

    SpringBoot bean依賴屬性配置詳細介紹

    Spring容器是Spring的核心,一切SpringBean都存儲在Spring容器內。可以說bean是spring核心中的核心。Bean配置信息定義了Bean的實現(xiàn)及依賴關系,這篇文章主要介紹了SpringBoot bean依賴屬性配置
    2022-09-09
  • Spring聲明式事務注解之@EnableTransactionManagement解析

    Spring聲明式事務注解之@EnableTransactionManagement解析

    這篇文章主要介紹了Spring聲明式事務注解之@EnableTransactionManagement解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • maven項目中<scope>provided</scope>的作用及說明

    maven項目中<scope>provided</scope>的作用及說明

    這篇文章主要介紹了maven項目中<scope>provided</scope>的作用及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 用Java實現(xiàn)聊天程序

    用Java實現(xiàn)聊天程序

    這篇文章主要為大家詳細介紹了用Java實現(xiàn)聊天程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • postman測試post請求參數(shù)為json類型的實例講解

    postman測試post請求參數(shù)為json類型的實例講解

    下面小編就為大家分享一篇postman測試post請求參數(shù)為json類型的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03

最新評論