国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Java虛擬機內部構成淺析

開發 后端
Java虛擬機由五部分組成:指令集、寄存器、棧、無用單元回收堆、方法區域,本文將帶您深入Java虛擬機的內部體系。

Java虛擬機是一個想象中的機器,正如其名是虛擬的。在實際計算機上市通過軟件模擬實現的。它有虛擬的硬件,如處理器、堆棧、寄存器等,還有相應的指令系統。它屏蔽了與具體平臺相關的信息,使得Java語言編譯程序只需生成在Java虛擬機上運行的目標代碼即字節碼,這樣就可以在多個平臺上不加修改的運行。Java虛擬機在執行字節碼時,把字節碼解釋成具體平臺上的機器指令執行。這正是Java語言具有與平臺無關性的原因。

Java虛擬機由五部分組成:指令集、寄存器、棧、無用單元回收堆(garbage-collected-heap)、方法區域。它們構成了Java虛擬機的邏輯成份,不依賴任何實現技術或組織方式,但他們的功能必須在真實機器上以某種方式實現。Java虛擬機支持大約248個字節碼。每個字節碼執行一種基本的CPU運算,例如,把一個整數加到寄存器,子程序轉移等。Java指令集相當于Java程序的匯編語言。其中的指令包含一個單字節的操作符,用于指定要執行的操作,還有0個或多個操作數,提供操作所需的參數或數據。許多指令沒有操作數,僅有一個單字節的操作符構成。虛擬機的內層循環的執行過程如下:

do{取一個操作符字節:根據操作符的值執行一個動作;}while(程序未結束)

由于指令系統的簡單性,使得虛擬機的執行過程十分簡單,從而有利于提高執行效率。指令中操作數的數量和大小是由操作符決定的。如果操作數比一個字節大那么它存儲的順序是高字節優先。例如,一個16位的參數存放時占用兩個字節,其值為***個字節×256+第二個字節。字節碼指令流一般只是字節對齊的。指令tableswitch和lookup是例外,這兩條指令內部要求強制的4字節邊界對齊。
 
Java虛擬機的寄存器用于保存機器的運行狀態,與微處理器中的某些專用寄存器類似。Java虛擬機的寄存器有4種:pc:Java程序計數器,optop:指向操作數棧頂端的指針,frame:指向當前執行環境的指針,vars:指向當前執行方法的局部變量區***個變量的指針。Java虛擬機是棧式的,他不定義或使用寄存器來傳遞或接受參數,其目的是為了保證指令集的簡潔性和實現時的高效性特別是對于寄存器數目不多的處理器。所有寄存器 都是32位的。

Java虛擬機的棧有三個區域:局部變量區、運行環境區、操作數區。局部變量區每個Java方法使用一個固定大小的局部變量集。它們按照與ars寄存器的字偏移量來尋址。局部變量都是32位的。長整數和雙精度浮點數占據了2個局部變量的空間,卻按照***個局部變量的索引來尋址。虛擬機規范并不要求在局部變量中的64 為的值是64位對其的虛擬機提供了把局部變量中的值裝載到操作數棧的指令,也提供了把操作數棧中的值寫入局部變量的指令。

在運行環境中包含的信息用于動態鏈接,正常的方法返回以及異常傳播。運行環境包括對指向當前類和當前方法的解釋器符號表的指針,用于支持方法代碼的動態鏈接。方法的class文件代碼在引用要調用的方法和要訪問的變量時使用符號。動態鏈接把符號形式的方法調用翻譯成實際方法調用,裝載必要的類以解釋還沒有定義的符號,并把變量訪問翻譯成與這些變量運行時的存貯結構相應的偏移地址。動態鏈接方法和變量使的方法中使用的其它類的變化不會影響到本程序的代碼。如果當前方法正常地結束了,在執行了一條具有正確類型的返回指令時,調用的方法會得到一個返回值。執行環境在正常返回的情況下用于恢復調用者的寄存器,并把調用者的寄存器計算器增加一個恰當的值,一跳過已執行過的方法。調用指令然后再調用者的執行環境中繼續執行下去。異常情況下在Java中被稱作error(錯誤)或exception(異常),是throwable類的子類。在程序中出錯的原因是動態鏈接出錯如無法找到所需class文件,運行時出錯如一個空指針的引用。程序使用了throw語句。

當異常發生時,Java虛擬機采取如下措施:檢查與當前方法相關的catch子句表,每個catch子句包含其有效指令范圍,能夠處理異常類型以及處理異常代碼塊地址。與異常相匹配的catch子句應該符合一下條件:造成異常的指令在指令范圍內,發生異常類型是其能夠處理的異常類型的子類型。如果找到了匹配的catch子句,那么系統轉到異常處理模塊執行;否則重復尋找直到找到為止。如果找不到則得到一個“未截獲異常”的結果并返回到當前方法的調用者好像異常剛剛在其調用者中發生一樣。如果調用者仍然沒有找到相應的異常處理,那么系統將調用一個缺省的異常處理模塊。
 
機器指令只從操作數棧中取操作數,對他們進行操作,并把結果返回到棧中。棧用于給方法傳遞參數并從方法接受結果,也用于支持操作數的參數并保存操作結果。Java的堆是一個運行時數據區,類的實例從中分配空間。Java語言有無用單元回收功能:不給程序員顯式釋放對象的能力。不規定具體使用的無用單元收集算法。可以根據系統需求使用各種各樣的算法。

方法區與傳統語言中的編譯后代碼或是unix進程中的正文段相似。保存方法代碼(編譯后的Java代碼)和符號表。在當前的Java實現中,方法代碼不包括在無用回收集堆中但計劃在將來的版本實現。


 

【編輯推薦】

  1. Java虛擬機幾個命令行參數說明
  2. Java虛擬機發展回顧 為跨平臺而生
  3. Java虛擬機概念及體系結構
  4. 如何分析Java虛擬機死鎖
  5. Java虛擬機的類的裝載
責任編輯:佚名 來源: JavaEye
相關推薦

2020-03-10 09:30:11

Java內存數據

2010-05-31 16:53:21

Java

2009-10-09 09:42:07

虛擬機內存

2019-04-09 15:56:46

虛擬機內存區Java

2011-05-26 15:41:25

java虛擬機

2019-11-20 15:02:45

Java虛擬機內存

2018-03-28 14:58:42

虛擬機內核系統

2009-06-19 15:38:43

Java虛擬機

2010-02-24 10:39:28

Python虛擬機

2019-03-05 15:37:08

JVMJava虛擬機

2010-09-17 15:47:14

TOMCATJVM

2018-03-13 15:08:19

虛擬機CPU虛擬化

2009-06-12 21:39:48

Java虛擬機體系結構Java虛擬機

2013-10-28 09:22:14

IaaS部署虛擬機安全虛擬機管理

2013-10-28 09:32:47

基礎設施即服務IaaS部署虛擬機安全

2023-12-14 10:35:22

虛擬機程序

2010-03-26 18:08:18

Windows Pho

2010-09-25 15:59:54

JVM虛擬機

2018-07-10 15:10:50

OpenStack虛擬機metadata

2019-03-19 15:30:42

程序員JVM虛擬機
點贊
收藏

51CTO技術棧公眾號

日韩一区二区三区高清在线观看| 日韩中文字幕组| 精品一区二区视频| 欧美精品亚洲精品| 亚洲一区二区三区成人在线视频精品| 欧美激情视频在线| 国产精品国产亚洲精品看不卡15| 欧美中日韩在线| 国产熟女高潮视频| 欧美aa免费在线| 97天天综合网| 亚洲视频福利| 午夜精品久久久久久久久久| 日韩午夜在线影院| 日韩美女视频中文字幕| 欧美二级三级| av黄色免费| 日韩电影在线观看网站| 久久伦理网站| 国产一本一道久久香蕉| 久久这里只精品| 狠狠v欧美v日韩v亚洲ⅴ| 欧美亚洲一级二级| 日韩国产欧美在线视频| 日本成人在线不卡| 丝袜a∨在线一区二区三区不卡| 鲁鲁视频www一区二区| 91成人免费| 高清国产一区| 影音先锋中文字幕一区| 91麻豆国产精品| 成人情趣视频网站| 国产精品久久久久免费| 日韩黄色一级片| 男人透女人免费视频| 亚洲欧洲日产国码二区| 邻居大乳一区二区三区| 欧美日韩亚洲一区二区三区| 日韩av免费看| 成人18视频在线观看| 色先锋资源久久综合5566| 第一av在线| 亚洲激情视频网| 成人看片网页| 国产99久久久欧美黑人| 日韩精品午夜| 国产精品乱子乱xxxx| 中文一区在线| 久久久999免费视频| 亚洲人成影院在线观看| 在线观看av日韩| 欧美亚洲国产bt| 黄色激情在线播放| 国产精品中文在线| 国产一区二区三区成人欧美日韩在线观看| 一区二区三区观看| 香港成人在线视频| 久久香蕉一区| 91精品国产高清久久久久久91裸体 | 久久视频精品在线| 在线中文一区| 2019一级黄色毛片免费看网| 亚洲黄色www| 9色精品在线| 成人毛片免费在线观看| 欧美美女激情18p| 一区二区三区在线资源| 好吊色欧美一区二区三区| 555www色欧美视频| 91老司机福利在线| 亚洲丰满少妇videoshd| 国产精品毛片一区视频| 久久伊人亚洲| av资源站久久亚洲| 亚洲最好看的视频| 成人福利网站在线观看| 狠狠色丁香婷综合久久| av网站导航在线观看免费| 亚洲小视频在线| 久久av免费看| 99视频免费播放| 在线丨暗呦小u女国产精品| 国产一区二区三区免费| 玖玖综合伊人| 人偷久久久久久久偷女厕| 亚洲欧美bt| 亚洲一区二区三区免费观看| 亚洲成人精品在线| 国产成人精品在线看| 亚洲精品自拍| 亚欧无线一线二线三线区别| 亚洲а∨天堂久久精品喷水| 国产美女娇喘av呻吟久久| 一区二区三区伦理| www.av91| 国产女精品视频网站免费| 日韩欧美国产成人| 丝袜美腿亚洲一区| а√天堂8资源在线| 18禁男女爽爽爽午夜网站免费 | 亚洲国产午夜伦理片大全在线观看网站| 精品国产91久久久久久老师| 99精品美女| av免费在线观看网站| 97av自拍| 欧美性猛交xxxx| 精品一区二区三区欧美| 欧美成a人片在线观看久| 亚洲 欧洲 日韩| 欧美成人精品xxx| 亚洲人成精品久久久久久| 黄色日韩在线| 色婷婷av在线| 在线色视频网| 日本成人a视频| 国产成人亚洲综合无码| 成人免费看吃奶视频网站| 日韩欧美高清一区| 国产精品日韩成人| 不卡一区二区三区四区| 日韩精品一级| av在线播放国产| 久久撸在线视频| 自拍另类欧美| 国产精品一码二码三码在线| 国产国语videosex另类| 美日韩精品免费观看视频| 在线观看网站黄不卡| 日本午夜一区二区| 最新精品在线| xx欧美视频| 精品视频一二三| 天天操天天爱天天爽| 免费网站在线观看视频| 日韩video| 亚洲欧美在线x视频| 国产精品久久久一区麻豆最新章节| 欧美日韩三级| 黄色成人av网站| 青青久久av| 国产伦精品一区二区三区在线播放 | 91精品国产综合久久香蕉| 欧美劲爆第一页| 97在线免费观看视频| 日韩一区中文| 污网站免费在线观看| 日本天堂在线| 国产高清av在线播放| 国产精品夜夜夜爽张柏芝| 久久精品国产精品国产精品污 | 天天干天天色天天爽| 国产精品88久久久久久妇女| 国产伦精品一区| 日韩欧美视频一区二区| 国产精品亚洲精品| 欧美日韩天天操| 国产日韩一区二区在线观看| 国产h色视频在线观看| 一本大道香蕉8中文在线视频 | 欧美色偷偷大香| 欧美成人性福生活免费看| 日韩欧美视频在线| 亚洲国产古装精品网站| 中文字幕在线观看亚洲| 久久久国产一区二区三区四区小说| 97蜜桃久久| 欧美日韩亚洲一区二区三区在线观看| 欧美一级夜夜爽| 亚洲人成网站在线| 欧美色婷婷久久99精品红桃| 男人天堂网在线| 欧美日韩高清免费| 7878成人国产在线观看| 不卡av在线网| 国产欧美高清视频在线| 超碰在线影院| sihu成人| 成人毛片视频网站| 免费激情视频在线观看| 国产人成在线视频| 3d成人动漫在线| 免费精品国产的网站免费观看| 亚洲精品日韩久久| 久久精品一区四区| |精品福利一区二区三区| 日韩一级片网址| 国产网站欧美日韩免费精品在线观看| 九九九久久久久久| 国产精品一区二区欧美黑人喷潮水| 成年人网站大全| av资源新版天堂在线| 国产一区二区三区四区老人| 欧美激情在线一区二区三区| 亚洲精品乱码久久久久久| 亚洲最新中文字幕| 91高清免费视频| 国产精品视频最多的网站| 色吧影院999| 精品国产麻豆免费人成网站| 亚洲高清免费视频|