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

詳細(xì)介紹JVM結(jié)構(gòu)基礎(chǔ)

開發(fā) 后端
本文介紹的是JVM的一些規(guī)范,希望對大家有幫助,一起來看。

JVM執(zhí)行的對象就是大家非常熟悉的class文件,我們也稱為類文件,JVM規(guī)范定義的這個編譯完成的代碼文件(雖然并非強制要求是實際的文件)的格式非常的詳實,但是我們這里只說一些宏觀的內(nèi)容,以后有機會再研究細(xì)節(jié)的內(nèi)容吧。JVM要求的類文件的格式是和硬件和操作系統(tǒng)無關(guān)的一種二進(jìn)制格式,它精確定義了類或者接口的表示,它甚至包含了字節(jié)順序這樣的細(xì)節(jié),而字節(jié)順序在特定平臺的目標(biāo)文件格式中一般都是固定的,不會進(jìn)行說明。

JVM所支持的數(shù)據(jù)類型和Java語言規(guī)范中定義的幾乎一樣,請注意是幾乎一樣!也就是原始類型和引用類型,他們可以被存儲在變量表中,也可以作為參數(shù)傳遞、被方法返回,更通常的就是成為操作的對象。為什么和Java語言規(guī)范中定義的不完全一樣呢?因為JVM中有一種Java語言所沒有的原始類型:返回地址類型(returnAddress type)。該類型是jsr, ret以及jsr_w指令需要使用到的,它的值是JVM指令的操作碼的指針,并且它的值是不能被運行中的程序所修改的。

另外需要提到的就是布爾類型的值,雖然在Java語言中它是完全獨立的值,但是在JVM中只提供了對它的有限支持,表現(xiàn)在:
沒有單獨的操作布爾類型的指令,源代碼中的布爾類型的操作在編譯以后是作為int類型的值進(jìn)行操作的。

JVM直接支持布爾數(shù)組,newarray指令可以創(chuàng)建布爾數(shù)組,而它的訪問和修改操作卻是使用byte類型的數(shù)組的操作指令進(jìn)行的:baload,bastore。(在JDK1.0,1,1以及1.2中,布爾數(shù)組被編碼為byte數(shù)組,每個元素是8位)

JVM用1代表true,用0代表false,編譯器將源代碼中的布爾類型映射為JVM中的int類型,而且必須和JVM的要求一致。

另外JVM規(guī)范中對于浮點類型的數(shù)據(jù)有大段的說明,我沒有怎么看,主要是討論JVM的浮點型和IEEE 754的關(guān)系的。

關(guān)于類型的另外一個需要提一下的是類型檢查。JVM期望幾乎所有的類型檢查已經(jīng)在運行之前完成了(通常是由編譯器進(jìn)行檢查的)而不用JVM自己來檢查。原始類型的值不需要被標(biāo)記或者在運行時被檢查以確定他們的類型,同樣他們也不用和引用類型的值進(jìn)行區(qū)分,區(qū)分工作是由JVM的指令集來完成的,JVM的指令集使用不同指令來區(qū)分它要操作的值的類型,例如iadd, ladd, fadd以及dadd是用于將兩個數(shù)字相加并產(chǎn)生數(shù)字類型結(jié)果的所有JVM指令,但是每個指令都是針對特定類型的,分別對應(yīng)int, long, float以及double。

JVM包含對對象的顯式支持。類是動態(tài)分配的類實例或者是一個數(shù)組,JVM中的引用類型就是對一個對象的引用,引用類型的值可以想象為對象的指針,一個對象同時可能存在多個對它的引用,對象總是通過引用被操作、傳遞或者測試的。

對于引用類型,需要提及的一點就是關(guān)于null,它最初是沒有運行時類型的,但是它可以被轉(zhuǎn)換為任何類型,而且對于null,JVM并沒有要求任何具體的值與之對應(yīng)。

說完上面這些,我們就開始進(jìn)入我學(xué)習(xí)JVM時最想了解的部分了,大家可要打起精神哦。

JVM為運行一個程序定義了幾種數(shù)據(jù)區(qū)(Data Area),包括:pc寄存器、JVM堆棧、堆、方法區(qū)(Method Area)、運行時常量池(Runtime Constant Pool)以及本機方法堆棧(Native Method Stacks),這些數(shù)據(jù)區(qū)根據(jù)其生存期可以分為兩種,一種就是和JVM的生存期相同(包括堆和方法區(qū)),一種和線程的生存期相同(其它的),和JVM生存期相同的數(shù)據(jù)區(qū)在JVM啟動的時候被創(chuàng)建并在JVM退出的時候被銷毀,而和線程生存期相同的數(shù)據(jù)區(qū)是每個線程一個的,他們在線程創(chuàng)建的時候被創(chuàng)建,在線程被銷毀的時候被銷毀。

由于JVM可以同時支持運行多個線程,因此每個線程必然需要各自的PC(program counter)寄存器,無論從什么角度講,每個JVM線程只能在一個時間只能執(zhí)行一個方法,該方法也就是線程的當(dāng)前方法,如果該方法不是本機方法,那么PC寄存器保存的就是當(dāng)前指令(JVM的指令)的地址,如果是當(dāng)前方法是本機方法,PC寄存器的值就沒有被定義。JVM的PC寄存器的大小足夠大,可以容納一個returnAddress類型或者特定平臺的本機指針。

每個JVM線程還擁有一個私有的JVM堆棧,它存儲幀(下一篇文章會講到)。JVM堆棧和像C這樣的傳統(tǒng)編程語言中的堆棧是類似的,它保存局部變量和部分結(jié)果,并且在方法調(diào)用和返回中也擔(dān)任一些職責(zé)。因為除了對幀的壓入和彈出操作外,對JVM堆棧不能直接進(jìn)行操作,因此幀可能是在堆上分配的。如果一個線程中計算所需的JVM堆棧大于允許的大小,JVM會拋出StackOverflowError錯誤,如果JVM堆棧是可以動態(tài)伸縮的,如果需要擴展,但是又沒有足夠的內(nèi)存可用或者沒有足夠的內(nèi)存為一個新線程創(chuàng)建JVM堆棧,JVM會拋出OutOfMemoryError錯誤。

JVM只有一個為所有線程所共享的堆,所有的類實例和數(shù)組都是在堆中創(chuàng)建的。堆所存儲的對象被一個自動存儲管理系統(tǒng)回收(也就是我們所熟知的垃圾收集器(gc))。對象不能被顯式的釋放,JVM假設(shè)沒有特定類型的自動存儲管理系統(tǒng),存儲管理技術(shù)可以根據(jù)實現(xiàn)者的系統(tǒng)需求進(jìn)行選擇。如果計算所需的內(nèi)存堆大于自動存儲管理系統(tǒng)可以使用的大小,JVM會拋出OutOfMemoryError錯誤。

JVM只有一個為所有的線程所共享的方法區(qū),方法區(qū)類似傳統(tǒng)語言的已編譯代碼的存儲區(qū)或者UNIX進(jìn)程的“文本”段。它存儲類結(jié)構(gòu),例如運行時常量池,成員和方法數(shù)據(jù)以及方法、構(gòu)造方法的代碼(包括用于類和實例的初始化以及接口類型初始化的特定方法(這些特定方法以后會講到))。雖然從邏輯上講方法區(qū)是堆的一部分,但是JVM的簡單實現(xiàn)可以選擇不對方法區(qū)進(jìn)行垃圾收集或者壓縮(以筆者的理解就是類不能進(jìn)行卸載)。***版本(第二版)的JVM規(guī)范沒有要求方法區(qū)的位置或者管理已編譯代碼的策略。如果方法區(qū)的內(nèi)存不能滿足一個分配請求,JVM會拋出OutOfMemoryError。

運行時常量池是類文件中的常量池表的運行時表示,它包含幾種常量,范圍從編譯時就已知的數(shù)字常量到運行時必須進(jìn)行解析的方法和成員引用。運行時常量池扮演的功能類似于傳統(tǒng)編程語言中的符號表(symbol table),但是它所包含的數(shù)據(jù)比典型的符號表更多。

每個運行時常量池時從JVM的方法區(qū)中分配的,對于特定方法或者接口的運行時常量池是JVM在創(chuàng)建類或者接口的時候創(chuàng)建的。
當(dāng)創(chuàng)建一個類或者接口時,如果創(chuàng)建運行時常量池需要的內(nèi)存比方法區(qū)中的可用內(nèi)容更多的內(nèi)存,JVM會拋出OutOfMemoryError。

關(guān)于常量池創(chuàng)建的更多內(nèi)容以后可能會更詳細(xì)的講解。

JVM的實現(xiàn)可能使用傳統(tǒng)的堆棧(更通常的講就是C棧)以支持本機方法(不是使用JAVA語言編寫的方法),本機方法堆棧也可以用于在像C語言這樣的語言中為JVM指令集實現(xiàn)解析器,對于不能加載本機方法以及自身不依賴傳統(tǒng)堆棧的JVM實現(xiàn)而言,它可以不提供本機方法堆棧,如果提供,本機方法堆棧通常在線程創(chuàng)建的時候為每個線程分配(以筆者的理解應(yīng)該是需要使用本機方法的線程)。如果線程計算所需的內(nèi)存比本機方法堆棧所允許的大,JVM會拋出StackOverflowError錯誤,如果本機方法堆棧可以動態(tài)伸縮,而當(dāng)需要擴展的時候又沒有足夠的內(nèi)存時,或者沒有足夠的內(nèi)容用于創(chuàng)建一個本機方法堆棧,JVM會拋出OutOfMemoryError。

對于上面的這些數(shù)據(jù)區(qū),JVM規(guī)范允許它們的大小是固定尺寸的,也可以是根據(jù)計算的需要動態(tài)伸縮的,如果是固定尺寸的,其尺寸可以在創(chuàng)建時自主選擇。JVM的實現(xiàn)可以給程序員或者用戶提供控制JVM堆棧的初始大小的方法,同樣,在動態(tài)伸縮的情況下可以控制***大小和最小大小,并且它們所使用的內(nèi)存空間可以不是連續(xù)的。

【編輯推薦】

  1. 詳細(xì)介紹JavaScript中的cookie
  2. 分析JAVA的Random類
  3. 談java web server與io形式
  4. 談JavaScript中的事件委托
  5. JAVA開發(fā) 分析JNI標(biāo)準(zhǔn)原理
責(zé)任編輯:于鐵 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-06-21 14:42:37

ECMAScriptJavaScript

2009-07-08 14:23:40

JVM是什么

2011-07-13 15:47:58

C

2009-07-09 13:52:41

Inside JVM

2011-07-05 10:39:55

JVM

2020-06-29 14:10:28

JVM參數(shù)配置

2009-08-13 15:40:28

C#基礎(chǔ)知識

2009-08-13 16:02:29

C#結(jié)構(gòu)

2011-07-04 10:32:37

JAVA

2009-12-21 13:03:06

向量路由協(xié)議

2010-03-05 10:24:33

2011-06-21 09:50:51

volatile

2010-03-05 10:50:17

2011-06-21 10:37:56

const

2011-07-14 16:26:01

2010-03-05 12:50:38

Linux shell

2010-03-05 13:00:46

2011-07-14 16:56:21

2010-03-05 11:58:52

2010-03-05 13:09:23

Linux shell
點贊
收藏

51CTO技術(shù)棧公眾號

伊人网综合视频| 亚洲欧美久久234| 国产无遮挡又黄又爽| 色88888久久久久久影院| 色综合天天综合给合国产| 手机在线观看国产精品| www.蜜臀av.com| 亚洲一区网站| 久久久国产成人精品| 天堂www中文在线资源| 欧美暴力调教| 一区二区免费看| 欧美日韩电影一区二区三区| 国产精品高潮呻吟久久久| 亚洲欧洲一区| www.国产一区| 精品人妻少妇嫩草av无码| gogo大尺度成人免费视频| 欧美日韩国产精品| 成人在线观看www| 伦理片一区二区三区| 国产91精品露脸国语对白| 国产精品美女主播| xxxxxx国产| 久久综合99| 国产午夜精品麻豆| 欧美成人亚洲成人| 国产午夜精品一区二区三区嫩草| 国产精品女人网站| 国产亚洲精品成人| 91亚洲国产| 丰满少妇乱子伦精品看片| 樱桃视频成人在线观看| 亚洲四区在线观看| 日本不卡一二三区| 东京干手机福利视频| 美女脱光内衣内裤视频久久网站 | 孩xxxx性bbbb欧美| 69夜色精品国产69乱| 国产一区二区欧美| 日韩av在线网站| av不卡中文字幕| 国产美女视频一区二区| 欧美性极品少妇| 91视频免费版污| 丝袜美腿一区| 欧美视频在线观看 亚洲欧| 精品少妇人欧美激情在线观看| 麻豆电影在线播放| 国产精品高潮呻吟| 一区二区免费电影| 黄网站免费在线播放| 亚洲国产成人自拍| 日韩视频在线观看国产| 韩国免费在线视频| 国产欧美日韩中文久久| 欧美日韩在线不卡一区| 欧美69xxxxx| 久久久精品一品道一区| 欧美另类视频在线| 可以在线观看的av网站| 国产蜜臀av在线一区二区三区 | 青青草97国产精品麻豆| 在线视频欧美性高潮| 黄色av免费播放| 日韩精品四区| 色偷偷av一区二区三区乱| 亚洲一二三四五六区| 欧美国产美女| 免费99精品国产自在在线| 99视频只有精品| 亚洲午夜极品| 欧美一区二区.| 青青国产在线视频| 久久99精品国产麻豆婷婷| 91免费精品国偷自产在线| www日本视频| 成人app下载| 欧美精品免费观看二区| 亚洲1卡2卡3卡4卡乱码精品| 亚洲色图一区二区三区| 无码熟妇人妻av在线电影| 日本三级一区| 欧美日韩黄视频| 国产成人精品综合久久久久99| 国产成人一二| 一本一本久久a久久精品综合小说 一本一本久久a久久精品牛牛影视 | 日韩一级免费| 国产精品久久久久久亚洲影视 | 国内精品免费在线观看| 91麻豆蜜桃| 你懂的视频在线播放| 欧美伦理影院| 亚洲无线码在线一区观看| 亚洲黄色网址大全| 欧美日韩精选| 清纯唯美亚洲综合| 国产精品嫩草影院精东| 99精品国产99久久久久久白柏 | av av在线| 国产亚洲欧美日韩在线观看一区二区 | 欧美区一区二| 日本高清+成人网在线观看| 中文字幕一区二区在线视频| 国产成人午夜高潮毛片| 欧美日韩在线一区二区三区| 大地资源网3页在线观看| 岛国av一区二区三区| 久久久精品高清| 西野翔中文久久精品字幕| 久久天天躁夜夜躁狠狠躁2022| 毛片毛片女人毛片毛片| 国产在线观看免费一区| 欧美成人蜜桃| 国产经典三级在线| 欧美日韩高清在线| 人妻无码一区二区三区| 欧美一区亚洲| 国产精品一区二区性色av| 天堂在线视频免费| 自拍偷拍国产亚洲| 美女网站免费观看视频| 国产在线播放精品| 欧美另类高清videos| 伊人成年综合网| 91一区二区三区在线观看| 免费观看国产视频在线| 久久精品 人人爱| 亚洲视频精品在线| 日韩精品1区2区| 成人午夜精品一区二区三区| 午夜啪啪福利视频| 亚洲ww精品| 亚洲最大在线视频| 亚洲AV无码成人精品区东京热| 国产成人av电影| 午夜久久久久久久久久久| 久久精品黄色| 中文字幕欧美日韩在线| 青青国产在线视频| 国产日韩欧美a| 男女曰b免费视频| 天天躁日日躁狠狠躁欧美巨大小说| 欧美极品美女视频网站在线观看免费 | 国产婷婷视频在线| 欧美剧情片在线观看| 欧美日韩国产黄色| 免费人成在线不卡| 亚洲精品在线免费| 欧美系列精品| 久久这里有精品| 国产偷拍一区二区| 亚洲欧美日韩国产综合| 99精品视频免费版的特色功能| 91亚洲人成网污www| 成人有码在线视频| 成a人片在线观看| 91精品免费在线观看| 538任你躁在线精品视频网站| 精东粉嫩av免费一区二区三区| 性欧美18一19内谢| 日韩在线观看一区二区三区| 欧美精品在线视频观看| 亚洲美女性生活| 午夜影院久久久| 久久国产精品无码一级毛片| 久久久999| 午夜精品福利一区二区| 亚洲影视资源| 久久久久久久久久久av| 免费黄色片在线观看| 欧美日韩国产片| 综合五月激情网| 成人永久免费视频| 波多野结衣家庭教师视频| 精品产国自在拍| 91九色精品视频| heyzo高清在线| 亚洲区免费影片| 国产绿帽一区二区三区| 亚洲在线视频免费观看| 人妻无码一区二区三区| 精品无码三级在线观看视频| 久久综合久久网| 秋霞欧美视频| 国产欧美日韩综合一区在线观看| 超碰超碰人人人人精品| 久久亚洲成人精品| 五月婷婷六月激情| 欧美日韩国产免费一区二区| 久久视频免费在线观看| 国产欧美日本一区视频| 一级日本黄色片| 亚洲在线黄色| 成人在线免费高清视频| 国产真实有声精品录音| 成人看片视频| 亚洲最大网站| 久久91亚洲人成电影网站| 国产在线中文字幕| 日韩美一区二区三区| 波多野结衣二区三区| 夜夜精品视频一区二区 | 免费精品99久久国产综合精品应用| 在线欧美不卡| 一区二区三区四区国产| 亚洲欧美成人vr| 成人综合av网| 欧洲精品久久久久毛片完整版| 欧美成人免费全部| a√资源在线| 精品视频—区二区三区免费| 国产www视频| 欧美色视频一区| 女人十八岁毛片| 一区二区三区**美女毛片| 久久精品国产亚洲av麻豆| 国产成人在线观看免费网站| 色播五月综合网| 性伦欧美刺激片在线观看| 成人午夜免费在线视频| 日韩久久久久| 欧美国产综合视频| 激情av综合| 99久re热视频这里只有精品6| xxxxx.日韩| 日韩美女免费视频| 18aaaa精品欧美大片h| 久久99热精品这里久久精品| 老司机在线视频二区| 国产一区二区三区视频| 日本福利片在线| 日韩的一区二区| 天天插天天干天天操| 日韩一级免费一区| 国产美女三级无套内谢| 欧美精品第1页| 国产偷人爽久久久久久老妇app | 色天天色综合| 国产一区二区精品免费| 国产精品sss在线观看av| 92国产精品久久久久首页| 日韩久久一区| 成人h猎奇视频网站| 999精品视频在线观看| 91免费看片网站| 国产一区精品二区| 91综合免费在线| 欧美精品影院| 高清国产在线一区| 盗摄牛牛av影视一区二区| 国产精品区免费视频| 国产亚洲成av人片在线观黄桃| 国产精品一 二 三| 牛牛影视久久网| 久久99影院| 欧美女王vk| 一本色道久久综合亚洲精品婷婷| 欧美成免费一区二区视频| 日韩不卡一二区| 中出一区二区| 久操网在线观看| 免费国产自线拍一欧美视频| 欧美伦理片在线看| 加勒比av一区二区| 麻豆tv在线观看| 91丨九色丨蝌蚪丨老版| 中文字幕人妻一区二区三区在线视频| 亚洲国产精品t66y| 福利所第一导航| 亚洲大片免费看| 日日夜夜操视频| 欧美巨大另类极品videosbest| av在线资源观看| 日韩av有码在线| av播放在线观看| 欧美成aaa人片在线观看蜜臀| 成人在线高清免费| 国产www精品| 国产精选久久| 久久超碰亚洲| 一区二区电影在线观看| 黄页网站大全在线观看| 日产欧产美韩系列久久99| 一级片黄色免费| 97精品久久久午夜一区二区三区| 亚洲天堂岛国片| 亚洲综合色区另类av| 91视频在线视频| 日韩一区二区在线观看| 九色在线视频| 欧美精品制服第一页| av有声小说一区二区三区| 91在线中文字幕| 亚洲性视频大全| 国风产精品一区二区| 日韩精品亚洲专区| 白嫩情侣偷拍呻吟刺激| 中文欧美字幕免费| 激情五月色婷婷| 337p亚洲精品色噜噜| 日韩精品一二| 欧美大片在线影院| 成人午夜sm精品久久久久久久| 国产高清在线精品一区二区三区| 成人在线免费观看网站| 给我免费播放片在线观看| 精品影视av免费| 免费网站在线高清观看| 午夜精品久久久久久久99樱桃| 国产一区二区三区成人| 亚洲欧美在线看| 黄在线观看免费网站ktv| 成人激情电影一区二区| 国产探花在线精品| 亚洲 欧美 日韩 国产综合 在线 | 亚洲欧美视频一区二区| 欧美亚洲一区在线| www.久久东京| 麻豆视频传媒入口| 精品一二三四在线| 亚洲av成人无码久久精品| 精品国产成人在线| 亚洲精品一区二区三区不卡| 日韩亚洲精品视频| 456亚洲精品成人影院| 久久国产精品一区二区三区四区 | 热久久精品免费视频| 91热门视频在线观看| 日本视频www| 日韩免费成人网| a在线免费观看| 91亚洲精品久久久久久久久久久久| 精品欧美久久| av在线无限看| 国产视频一区不卡| 国产伦精品一区二区三区视频我| 欧美成人性福生活免费看| 成人日批视频| 91精品在线国产| 牛夜精品久久久久久久99黑人| 天天操精品视频| 亚洲欧美日韩人成在线播放| 91尤物国产福利在线观看| 日韩天堂在线视频| 国产精品国产亚洲精品| 波多野结衣三级在线| 国产毛片精品国产一区二区三区| 麻豆精品国产免费| 日韩视频在线你懂得| 欧美精品videossex少妇| 国产精品国产亚洲精品看不卡15| 欧美人成在线| 美女搡bbb又爽又猛又黄www| 亚洲电影一级黄| 香蕉国产在线视频| 人体精品一二三区| 欧美裸体在线版观看完整版| 九色91popny| 亚洲欧洲日韩综合一区二区| 国产视频aaa| 欧美精品成人91久久久久久久| 亚洲五码在线| 免费看日本毛片| 国产农村妇女毛片精品久久麻豆 | 国产亚洲欧美日韩美女| 国产精品原创视频| 黄色a级在线观看| 成人午夜视频福利| 黄色一级视频免费看| 久久久精品美女| 精品成人自拍视频| 国产真实乱子伦| 日韩一区有码在线| 高清乱码毛片入口| 欧洲成人午夜免费大片| 日产精品一区二区| 爱情岛论坛亚洲自拍| 欧美日韩国产精品| 欧美被日视频| 国产美女99p| 另类小说欧美激情| 日本系列第一页| 中文字幕国内精品| 视频精品国内| 国产一级不卡毛片| 亚洲精品视频在线看| 神马久久久久| 成人在线中文字幕| 在线亚洲欧美| 蜜桃视频最新网址| 日韩成人xxxx| 精品国产乱码一区二区三区| 国产视频一视频二| 最新中文字幕一区二区三区 | 99在线精品一区二区三区| 136福利视频导航| 5278欧美一区二区三区| 亚洲国产精品成人| 欧美激情aaa|