精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

共同學習Java虛擬機

開發 后端
Java虛擬機是一個想象中的機器,在實際的計算機上通過軟件模擬來實現。Java虛擬機有自己想象中的硬件,如處理器、堆棧、寄存器等,還具有相應的指令系統。本文較詳細的介紹了什么是Java虛擬機以及它的體系結構。

一、什么是Java虛擬機:

Java虛擬機是一個想象中的機器,在實際的計算機上通過軟件模擬來實現。Java虛擬機有自己想象中的硬件,如處理器、堆棧、寄存器等,還具有相應的指令系統。

1、為什么要使用Java虛擬機

Java語言的一個非常重要的特點就是與平臺的無關性。而使用Java虛擬機是實現這一特點的關鍵。一般的高級語言如果要在不同的平臺上運行,至少需要編譯成不同的目標代碼。而引入Java語言虛擬機后,Java語言在不同平臺上運行時不需要重新編譯。Java語言使用模式Java虛擬機屏蔽了與具體平臺相關的信息,使得Java語言編譯程序只需生成在Java虛擬機上運行的目標代碼(字節碼),就可以在多種平臺上不加修改地運行。Java虛擬機在執行字節碼時,把字節碼解釋成具體平臺上的機器指令執行。

2、誰需要了解Java虛擬機

Java虛擬機是Java語言底層實現的基礎,對Java語言感興趣的人都應對Java虛擬機有個大概的了解。這有助于理解Java語言的一些性質,也有助于使用Java語言。對于要在特定平臺上實現Java虛擬機的軟件人員,Java語言的編譯器作者以及要用硬件芯片實現Java虛擬機的人來說,則必須深刻理解Java虛擬機的規范。另外,如果你想擴展Java語言,或是把其它語言編譯成Java語言的字節碼,你也需要深入地了解Java虛擬機。

3、Java虛擬機支持的數據類型

Java虛擬機支持Java語言的基本數據類型如下:

byte://1字節有符號整數的補碼
short://2字節有符號整數的補碼
int://4字節有符號整數的補碼
long://8字節有符號整數的補碼
float://4字節IEEE754單精度浮點數
double://8字節IEEE754雙精度浮點數
char://2字節無符號Unicode字符

幾乎所有的Java類型檢查都是在編譯時完成的。上面列出的原始數據類型的數據在Java執行時不需要用硬件標記。操作這些原始數據類型數據的字節碼(指令)本身就已經指出了操作數的數據類型,例如iadd、ladd、fadd和dadd指令都是把兩個數相加,其操作數類型別是int、long、float和double。虛擬機沒有給boolean(布爾)類型設置單獨的指令。boolean型的數據是由integer指令,包括integer返回來處理的。boolean型的數組則是用byte數組來處理的。虛擬機使用IEEE754格式的浮點數。不支持IEEE格式的較舊的計算機,在運行Java數值計算程序時,可能會非常慢。

虛擬機支持的其它數據類型包括:
object//對一個Javaobject(對象)的4字節引用
returnAddress//4字節,用于jsr/ret/jsr-w/ret-w指令
注:Java數組被當作object處理。

虛擬機的規范對于object內部的結構沒有任何特殊的要求。在Sun公司的實現中,對object的引用是一個句柄,其中包含一對指針:一個指針指向該object的方法表,另一個指向該object的數據。用Java虛擬機的字節碼表示的程序應該遵守類型規定。Java虛擬機的實現應拒絕執行違反了類型規定的字節碼程序。Java虛擬機由于字節碼定義的限制似乎只能運行于32位地址空間的機器上。但是可以創建一個Java虛擬機,它自動地把字節碼轉換成64位的形式。從Java虛擬機支持的數據類型可以看出,Java對數據類型的內部格式進行了嚴格規定,這樣使得各種Java虛擬機的實現對數據的解釋是相同的,從而保證了Java的與平臺無關性和可
移植性。

二、Java虛擬機體系結構:

Java虛擬機由五個部分組成:一組指令集、一組寄存器、一個棧、一個無用單元收集堆(Garbage-collected-heap)、一個方法區域。這五部分是Java虛擬機的邏輯成份,不依賴任何實現技術或組織方式,但它們的功能必須在真實機器上以某種方式實現。

1、Java指令集

Java虛擬機支持大約248個字節碼。每個字節碼執行一種基本的CPU運算,例如,把一個整數加到寄存器,子程序轉移等。Java指令集相當于Java程序的匯編語言。
Java指令集中的指令包含一個單字節的操作符,用于指定要執行的操作,還有0個或多個操作數,提供操作所需的參數或數據。許多指令沒有操作數,僅由一個單字節的操作符構成。

虛擬機的內層循環的執行過程如下:

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

由于指令系統的簡單性,使得虛擬機執行的過程十分簡單,從而有利于提高執行的效率。指令中操作數的數量和大小是由操作符決定的。如果操作數比一個字節大,那么它存儲的順序是高位字節優先。例如,一個16位的參數存放時占用兩個字節,其值為:

第一個字節*256+第二個字節字節碼指令流一般只是字節對齊的。指令tabltch和lookup是例外,在這兩條指令內部要求強制的4字節邊界對齊。

2、Java寄存器

Java虛擬機的寄存器用于保存機器的運行狀態,與微處理器中的某些專用寄存器類似。

Java虛擬機的寄存器有四種:

pc:Java程序計數器。
optop:指向操作數棧頂端的指針。
frame:指向當前執行方法的執行環境的指針。
vars:指向當前執行方法的局部變量區第一個變量的指針。

Java虛擬機是棧式的,它不定義或使用寄存器來傳遞或接受參數,其目的是為了保證指令集的簡潔性和實現時的高效性(特別是對于寄存器數目不多的處理器)。
所有寄存器都是32位的。

3、Java棧

Java虛擬機的棧有三個區域:局部變量區、運行環境區、操作數區。

(1)局部變量區

每個Java方法使用一個固定大小的局部變量集。它們按照與vars寄存器的字偏移量來尋址。局部變量都是32位的。長整數和雙精度浮點數占據了兩個局部變量的空間,卻按照第一個局部變量的索引來尋址。(例如,一個具有索引n的局部變量,如果是一個雙精度浮點數,那么它實際占據了索引n和n+1所代表的存儲空間。)虛擬機規范并不要求在局部變量中的64位的值是64位對齊的。虛擬機提供了把局部變量中的值裝載到操作數棧的指令,也提供了把操作數棧中的值寫入局部變量的指令。

(2)運行環境區

在運行環境中包含的信息用于動態鏈接,正常的方法返回以及異常傳播。

·動態鏈接
運行環境包括對指向當前類和當前方法的解釋器符號表的指針,用于支持方法代碼的動態鏈接。方法的class文件代碼在引用要調用的方法和要訪問的變量時使用符號。動態鏈接把符號形式的方法調用翻譯成實際方法調用,裝載必要的類以解釋還沒有定義的符號,并把變量訪問翻譯成與這些變量運行時的存儲結構相應的偏移地址。動態鏈接方法和變量使得方法中使用的其它類的變化不會影響到本程序的代碼。

·正常的方法返回
如果當前方法正常地結束了,在執行了一條具有正確類型的返回指令時,調用的方法會得到一個返回值。執行環境在正常返回的情況下用于恢復調用者的寄存器,并把調用者的程序計數器增加一個恰當的數值,以跳過已執行過的方法調用指令,然后在調用者的執行環境中繼續執行下去。

·異常和錯誤傳播
異常情況在Java中被稱作Error(錯誤)或Exception(異常),是Throwable類的子類,在程序中的原因是:①動態鏈接錯,如無法找到所需的class文件。②運行時錯,如對一個空指針的引用

·程序使用了throw語句。
當異常發生時,Java虛擬機采取如下措施:
·檢查與當前方法相聯系的catch子句表。每個catch子句包含其有效指令范圍,能夠處理的異常類型,以及處理異常的代碼塊地址。
·與異常相匹配的catch子句應該符合下面的條件:造成異常的指令在其指令范圍之內,發生的異常類型是其能處理的異常類型的子類型。如果找到了匹配的catch子句,那么系統轉移到指定的異常處理塊處執行;如果沒有找到異常處理塊,重復尋找匹配的catch子句的過程,直到當前方法的所有嵌套的catch子句都被檢查過。
·由于虛擬機從第一個匹配的catch子句處繼續執行,所以catch子句表中的順序是很重要的。因為Java代碼是結構化的,因此總可以把某個方法的所有的異常處理器都按序排列到一個表中,對任意可能的程序計數器的值,都可以用線性的順序找到合適的異常處理塊,以處理在該程序計數器值下發生的異常情況。
·如果找不到匹配的catch子句,那么當前方法得到一個"未截獲異常"的結果并返回到當前方法的調用者,好像異常剛剛在其調用者中發生一樣。如果在調用者中仍然沒有找到相應的異常處理塊,那么這種錯誤傳播將被繼續下去。如果錯誤被傳播到最頂層,那么系統將調用一個缺省的異常處理塊。
(3)操作數棧區

機器指令只從操作數棧中取操作數,對它們進行操作,并把結果返回到棧中。選擇棧結構的原因是:在只有少量寄存器或非通用寄存器的機器(如Intel486)上,也能夠高效地模擬虛擬機的行為。操作數棧是32位的。它用于給方法傳遞參數,并從方法接收結果,也用于支持操作的參數,并保存操作的結果。例如,iadd指令將兩個整數相加。相加的兩個整數應該是操作數棧頂的兩個字。這兩個字是由先前的指令壓進堆棧的。這兩個整數將從堆棧彈出、相加,并把結果壓回到操作數棧中。

每個原始數據類型都有專門的指令對它們進行必須的操作。每個操作數在棧中需要一個存儲位置,除了long和double型,它們需要兩個位置。操作數只能被適用于其類型的操作符所操作。例如,壓入兩個int類型的數,如果把它們當作是一個long類型的數則是非法的。在Sun的虛擬機實現中,這個限制由字節碼驗證器強制實行。但是,有少數操作(操作符dupe和swap),用于對運行時數據區進行操作時是不考慮類型的。

4、無用單元收集堆

Java的堆是一個運行時數據區,類的實例(對象)從中分配空間。Java語言具有無用單元收集能力:它不給程序員顯式釋放對象的能力。Java不規定具體使用的無用單元收集算法,可以根據系統的需求使用各種各樣的算法。

5、方法區

方法區與傳統語言中的編譯后代碼或是Unix進程中的正文段類似。它保存方法代碼(編譯后的java代碼)和符號表。在當前的Java實現中,方法代碼不包括在無用單元收集堆中,但計劃在將來的版本中實現。每個類文件包含了一個Java類或一個Java界面的編譯后的代碼。可以說類文件是Java語言的執行代碼文件。為了保證類文件的平臺無關性,Java虛擬機規范中對類文件的格式也作了詳細的說明。其具體細節請參考Sun公司的Java虛擬機規范。

 

 

【編輯推薦】

  1. 20個開發人員非常有用的Java功能代碼
  2. 走進Java 7中的模塊系統
  3. JavaFX 1.2 已經發布 主要新功能一覽
  4. 2009年十大Java技術解決方案
  5. 2008最值得學習的五種JAVA技術
責任編輯:仲衡 來源: 嘎基特的空間
相關推薦

2009-06-15 09:00:39

2009-06-15 16:47:41

Java環境變量

2009-10-27 11:29:44

linux虛擬機

2012-05-18 10:22:23

2010-07-26 09:02:38

2013-07-17 09:32:58

2010-09-17 15:12:57

JVMJava虛擬機

2020-06-03 19:07:49

Java虛擬機JVM

2011-12-28 13:24:47

JavaJVM

2011-02-20 22:43:19

Citrix XenS虛擬機

2020-05-08 16:55:48

Java虛擬機JVM

2011-06-22 13:35:55

JVM

2009-06-12 16:15:42

死鎖Java虛擬機

2018-06-19 15:39:21

HeapJava虛擬機

2020-06-03 14:43:26

Java虛擬機JVM

2014-02-21 11:20:34

KVMXen虛擬機

2020-01-17 10:52:37

無服務器容器技術

2023-09-03 17:05:20

虛擬機

2012-04-10 10:29:29

2010-12-23 14:05:12

虛擬機
點贊
收藏

51CTO技術棧公眾號

日韩精品影院| h网站在线免费观看| 国产欧美一区二区色老头 | 国产免费久久久| 国产精品草草| 一区二区三区www| 久久久久中文字幕亚洲精品 | 国产二区在线播放| 国产一区二区不卡老阿姨| 91精品国产成人| 国产精品av久久久久久无| 精品国产亚洲一区二区三区| 亚洲sss视频在线视频| 神马影院我不卡| 成人无码一区二区三区| 丝袜美腿亚洲综合| 久久久久久噜噜噜久久久精品| 女人黄色一级片| 精品亚洲自拍| 91精选在线观看| 日韩免费毛片视频| 国模雨婷捆绑高清在线| 国产精品嫩草久久久久| 精品久久久久久亚洲| 国产又粗又猛又黄| 久久男女视频| 九九久久精品一区| 特级西西人体高清大胆| 日韩高清影视在线观看| 日韩欧美视频在线| 日韩av片专区| 激情久久99| 色婷婷亚洲精品| 国产69精品久久久久999小说| 日本视频在线免费观看| 欧美激情一二三区| 欧美极品视频一区二区三区| 你懂的网站在线| 国产一区不卡视频| 成人情趣片在线观看免费| 久久精品偷拍视频| 天堂va蜜桃一区二区三区漫画版| 久久久久久香蕉网| 久草免费新视频| 欧美在线亚洲| 久久亚洲电影天堂| 91香蕉视频污在线观看| 久久视频在线| www日韩中文字幕在线看| 国产精品美女高潮无套| 国产精品手机在线播放| 亚洲天堂男人的天堂| 中日韩精品一区二区三区| 蜜臀av一区| 日韩国产欧美区| 中国一级特黄录像播放| 人人精品视频| 亚洲欧美中文日韩v在线观看| 丰满少妇在线观看资源站| 婷婷精品视频| 亚洲欧美成人精品| 大又大又粗又硬又爽少妇毛片 | 日本中文字幕久久| 久久精品亚洲| 国产成人综合av| 黄色大全在线观看| 麻豆精品视频在线| 91久久精品国产| 99久久精品无免国产免费| 国产成人午夜视频| 国产免费一区二区三区| 欧美色视频免费| 国产欧美日韩麻豆91| 一区二区不卡视频| 青草影视电视剧免费播放在线观看| 一个色在线综合| 欧美国产亚洲一区| 午夜精品成人av| 欧美日免费三级在线| 两性午夜免费视频| 成人午夜网址| 亚洲欧洲av一区二区| 亚洲激情图片网| 欧美激情1区2区| 97人人模人人爽人人喊中文字| 日韩人妻精品中文字幕| 久久99精品久久久久| 国产经品一区二区| 久久伊伊香蕉| 亚洲品质自拍视频| 黄色一级在线视频| 日本电影久久久| 精品福利二区三区| 国产视频123区| 亚洲激情黄色| 国产伊人精品在线| 头脑特工队2在线播放| 国产欧美视频一区二区| 欧美黑人在线观看| 香蕉成人影院| 精品国产成人系列| 蜜桃av乱码一区二区三区| 国产在线欧美| 国产精品成人在线| 亚洲乱熟女一区二区| 国产日产精品一区| 免费在线看黄色片| 精品女同一区二区三区在线观看| 亚洲大胆人体在线| 中文字幕第69页| 亚洲三级视频| 51精品国产人成在线观看| 岛国最新视频免费在线观看| 午夜视频一区二区三区| 成人黄色一级大片| 精品国产中文字幕第一页| 欧美—级高清免费播放| 一卡二卡在线视频| 国产亚洲欧美色| 精品久久久久久久久久中文字幕| 欧洲大片精品免费永久看nba| 亚洲天堂色网站| 在线观看国产亚洲| 国产69精品久久久久毛片 | 精品无码国产污污污免费网站 | 亚洲色欲综合一区二区三区| 911亚洲精品| 久久久国产精品亚洲一区| 久久久精品毛片| av亚洲精华国产精华| 日韩一二区视频| 亚洲欧洲一二区| 中文字幕亚洲欧美日韩高清| 成年人视频在线免费看| 岛国一区二区三区| 99国产精品白浆在线观看免费| 高清一区二区三区av| 日日摸夜夜添一区| 国产偷人爽久久久久久老妇app| 99re热视频精品| 久久久久久久久久网| 午夜免费欧美电影| 久热精品视频在线观看| 国产精品嫩草影院桃色| 国产精品久久久久aaaa樱花 | 91小视频在线观看| 日韩av一二三四区| 免费成人网www| 日本道色综合久久影院| 男人天堂亚洲二区| 欧美性xxxxx极品娇小| 波多野结衣视频播放| 99热免费精品在线观看| 久久精品国产第一区二区三区最新章节 | 国产美女性感在线观看懂色av| 都市激情亚洲色图| 在哪里可以看毛片| 蜜芽一区二区三区| 特级毛片在线免费观看| 久久精品免视看国产成人| 欧美日韩第一视频| 日日躁夜夜躁白天躁晚上躁91| 激情亚洲一区二区三区四区| 成人h动漫精品一区| 久久久精品日韩| 日韩免费av电影| 免费成人毛片| 欧美老少做受xxxx高潮| 色欲久久久天天天综合网| 亚洲成人久久影院| 国产精品成人一区二区三区电影毛片| 日本91福利区| 亚洲精品偷拍视频| 69精品国产久热在线观看| 欧美一级电影久久| 自拍视频在线网| 日韩欧美国产一二三区| 中文字幕超碰在线| 国产精品久久久久影院| 色欲欲www成人网站| 性欧美暴力猛交另类hd| 亚洲欧美日韩国产yyy| 亚洲综合网站| 国产成人拍精品视频午夜网站 | 欧美艳星介绍134位艳星| 91精品视频在线免费观看| 欧美videosex性欧美黑吊| 亚洲美女在线视频| 国产一区二区在线视频聊天| 亚洲成av人在线观看| 能直接看的av| 成人国产亚洲欧美成人综合网| 欧美三级午夜理伦三级| 国产精品99一区二区三| 精品综合久久| 91精品国产一区二区在线观看 | 哺乳一区二区三区中文视频 | 亚洲www啪成人一区二区| 久久影视电视剧免费网站清宫辞电视| 十八禁一区二区三区| 欧美日韩国产在线播放网站| 久久精品视频久久| 国产精品嫩草影院com| 欧美午夜精品一区二区| 日本不卡高清视频| av免费观看网| 在线精品小视频| 日本一区二区在线视频观看| 91成人短视频| 成人深夜直播免费观看| 欧美激情护士| 欧美日本黄视频| 91官网在线| 亚洲老板91色精品久久| 成人免费一级视频| 欧美二区乱c少妇| 中文字幕精品无| 五月天中文字幕一区二区| 大地资源高清在线视频观看| 久久综合一区二区| 波多野结衣三级视频| 久久aⅴ国产欧美74aaa| 黄色一级免费大片| 亚洲永久免费精品| 青青青青草视频| 国产一区二区三区四区三区四| 一区二区国产日产| 欧美午夜精品一区二区三区电影| 精品免费国产| 国内精品偷拍| 国产精品一区二区欧美黑人喷潮水| 91亚洲精品在看在线观看高清| 国产精品高潮在线| 唐人社导航福利精品| 91大神福利视频在线| 九色porny丨首页入口在线| 欧美国产日本高清在线| 羞羞的网站在线观看| 久久天天躁狠狠躁夜夜躁| 在线播放麻豆| 中文字幕在线亚洲| 91网在线播放| 俺去亚洲欧洲欧美日韩| 日本在线观看| 久久在线免费视频| 国产秀色在线www免费观看| 久久久国产精品视频| 黄色网在线看| 超碰97人人做人人爱少妇| 九色porny在线| 久久福利网址导航| 午夜成年人在线免费视频| 欧美巨猛xxxx猛交黑人97人| 日韩免费影院| 麻豆国产精品视频| 亚洲欧美一区二区三区国产精品 | 亚洲最大av| 中国 免费 av| 欧美在线影院| 免费毛片网站在线观看| 亚洲尤物精选| 亚洲污视频在线观看| 久久超碰97中文字幕| 亚洲18在线看污www麻豆| 久久99久久久| 国产亚洲va综合人人澡精品| 亚洲精品国产精品国自| 亚洲欧洲av一区二区三区久久| www.com.av| 一区二区国产盗摄色噜噜| 国产亚洲成人精品| 欧美日韩在线影院| 国产精品高清无码| 欧美一区二区三区免费大片| 欧美熟妇交换久久久久久分类 | аⅴ天堂中文在线网| 亚洲欧洲成人精品av97| 久久99久久98精品免观看软件 | 91黄色小网站| 蜜桃av一区二区三区电影| 91亚洲一区二区| 暴力调教一区二区三区| 日本一卡二卡在线播放| 亚洲黄色av一区| 天堂网中文字幕| 欧美一二三四区在线| 香蕉久久国产av一区二区| 国产亚洲精品久久久久久牛牛| av在线免费网址| 热门国产精品亚洲第一区在线| 亚洲欧美一级| 九色综合婷婷综合| 天堂资源在线中文| 一区二区三区日本| 国产一级二级毛片| 91国产免费观看| 国产91视频在线| 亚洲一区av在线播放| 国产精品探花在线| 国产欧美在线视频| 日韩欧美ww| 99久久99久久精品| 日本免费在线视频不卡一不卡二 | 91在线精品秘密一区二区| 毛片aaaaaa| 欧美日韩亚洲成人| av在线资源观看| 国产香蕉一区二区三区在线视频 | 国产精品啊啊啊| 国产精品一区二区小说| 26uuu欧美| 久一视频在线观看| 欧美另类一区二区三区| 久久久久久久久亚洲精品| 欧美高清第一页| 色综合久久久| 欧美日韩系列| 亚洲经典三级| 激情成人在线观看| 亚洲国产电影在线观看| 你懂的国产视频| 亚洲精品一区二区三区蜜桃下载 | 成人av一区| 欧洲成人性视频| 激情小说亚洲图片| 妞干网视频在线观看| 国产高清亚洲一区| www欧美com| 欧美久久免费观看| 日本中文字幕在线2020| 国产精品久久久999| 夜夜躁狠狠躁日日躁2021日韩| 九九热只有这里有精品| 国产高清亚洲一区| 国产乱国产乱老熟300| 制服丝袜国产精品| 色网站免费在线观看| 国产精品久久久久久久久久 | 影音先锋欧美精品| 欧美日韩不卡| 亚洲国产精品一区二区第一页| 日韩精品电影一区亚洲| 一本加勒比北条麻妃| 欧美日韩久久久久| 成人午夜免费在线观看| 欧美极品第一页| 老司机成人在线| 欧美日韩在线一| 久久五月婷婷丁香社区| 日本高清不卡码| 国产一区二区三区18| 国产成人精品一区二区三区视频| 先锋影音日韩| 久久精品国产网站| 国产午夜手机精彩视频| 欧美一级高清片| 免费av不卡在线观看| 国产精品久久久久免费| 99国产精品久久久久久久| 国产精品无码一区二区三区免费| 日韩欧美亚洲国产一区| eeuss影院在线播放| 国产精品一区二区久久久| 91久久国产| 免费黄色a级片| 欧美日韩激情美女| av影片在线看| 亚洲va欧美va国产综合剧情| 狠狠88综合久久久久综合网| 秘密基地免费观看完整版中文| 性做久久久久久久免费看| 色视频在线观看免费| 国产精品高潮在线| 中文无码久久精品| 欧美激情 亚洲| 色婷婷av一区二区三区之一色屋| 日韩免费网站| 国产精品久久久久久久免费大片| 国产精品资源| a一级免费视频| 亚洲国产精品一区二区三区| 日韩av首页| 伊人再见免费在线观看高清版 | 亚洲男人第一网站| 亚瑟国产精品| www.日本少妇| 国产精品区一区二区三| 性生交大片免费看女人按摩| 欧美一级免费视频| 天天综合精品| 久操视频免费看| 欧美一级xxx| 色综合一本到久久亚洲91| 国产在线无码精品| 国产欧美一区二区精品仙草咪| 成人av手机在线| 国产精品一区av| 亚洲一区网站| 清纯粉嫩极品夜夜嗨av| 伊人久久免费视频|