亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

JVM運行數據環境

2019-11-10 20:13:38
字體:
來源:轉載
供稿:網友

JVM(java virual machine)Java虛擬機是Java語言的基礎,雖然名稱叫做java虛擬機,但是跟Java語言并沒有強相關,JVM主要提供一種執行字節碼(class文件的載體),很多其他的語言例如python都有基于jvm的實現版本,JVM在很多時候給我們提供了便利,屏蔽了很多細節,尤其是垃圾回收與跨平臺與多線程機制.

JVM的基本結構如下: 這里寫圖片描述

它處于連接基本類庫與字節碼文件和操作系統之間的位置.jvm也是Java語言跨平臺的基礎.

Java整個語言體系如圖:

這里寫圖片描述

jdk中的jre首先用編譯器講我們編寫的Java文件編譯成class字節碼文件,然后JVM加載字節碼文件進行解釋執行.不針對特定平臺進行編程,因為每個平臺都應該應該依賴JVM規范進行JVM實現.因此抽象出的公共接口暴露給程序調用的規范是統一的.

這里寫圖片描述

前面也提過,JVM并不認識特定的語言,而是只認識字節碼文件,JVM規范對字節碼文件格式進行嚴格的控制,這直接關系到JVM的安全性.依照特定的規則在執行引擎的處理下,JVM完成類加載,將靜態的類文件映射到虛擬機的運行數據環境.

類加載如下:

這里寫圖片描述

到了運行數據區,這里就是JVM進行管理的主要內存區域了,這里主要分為6個部分:程序計數器,虛擬機棧區,本地方法棧區,堆區,方法區,運行時常量池.

主要結構如圖: 這里寫圖片描述 接下來分別介紹6個數據區的主要用途:

1. 程序計數器

程序計數器占用的大小比較小,每個線程都會創建自己的程序計數器,當然它的生存周期也就跟線程的生存周期保持一直了,它的主要用途是跟蹤程序方法執行的路徑,它記錄了當前方法執行的操作和位置,在進行多線程調度的時候是需要進行CPU分片的,有了程序計數器就可以保護線程的執行情況,當獲得CPU使用權的時候能夠進行線程恢復.它一般存放的指令為:分支、循環、跳轉、異常處理等指令.如果是不是本地方法,這里存放就是字節碼指令的地址,如果是本地方法,它的值是undefined.這個區域通常來說比較小,也是JVM唯一沒有規定OutOfMemoryError的區域.

2.虛擬機棧區

 這個區域也是線程私有的區域,當每個方法進行執行的時候都會在棧區創建棧幀(stack frame),棧幀一般存放的局部變量表,操作數棧,動態連接與方法出口等信息.局部變量表存放的方法入口還有在編譯器就確定的基本數據類型(long與double類型占用兩個slot,其余占用一個)和引用類型和returnAddress類型(eturnAddress類型會被Java虛擬機的jsr、ret和jsr_w指令所使用。returnAddress類型的值指向一條虛擬機指令的操作碼。與前面介紹的那些數值類的原生類型不同,returnAddress類型在Java語言之中并不存在相應的類型,也無法在程序運行期間更改returnAddress類型的值。)這個區域確定了兩種異常情況,當方法調用深度超過JVM的允許值會拋出StackOverflow,如果動態的擴展無法申請到足夠多的內存也會拋出OutOfMemoryError,虛擬機規范并沒要求這個區域是否可擴展,但大部分實現的虛擬都是可擴展的.

3.本地方法棧

 本地方法棧與虛擬機?;疽恢?,主要區別一個管理的目標是字節碼定義的方法棧,本地方法棧管理的是本地方法.這個區域的規范并不強制語言與數據結構,給跨平臺提供靈活的選擇性.

4.堆

 這是虛擬機中最大的一塊區域,也是開發者所指的JVM內存的主要含義,不僅僅是因為它所占比例一般最大,更重要的是垃圾回收的目標也主要在這個區域,這個區按照規范的定義是存放實例的唯一區域,但是隨著最新的技術發展(JIT技術與逃逸)發展,對象也不一定在這個區域存放.這個區域也是多個線程共享的,因此也會帶來多線程并發的復雜性.保持對象的一致性也是控制堆上的對象能夠對多個線程保持數據的一致.堆上主要存放對象實例和數組,當JVM啟動的時候就存在了堆區域,這與棧區不太一樣,棧是在方法開始調用的時候才開始創建.堆中的垃圾回收根據對象生存周期的不同來進行分代收集,主要的收集算法也有標記-清除,復制-整理,復制-壓縮等算法,根據這些算法也有一些串行,并行,甚至并發的垃圾收集器.在主流hotspot也分為年輕代(可以分為Eden和Survivor)和老年代.這個區域可以是連續的內存也可以只是邏輯連續的.

5.方法區

 這個區域主要存放被JVM加載的類的信息,包括常量,靜態變量,即時編譯后的代碼,這個區域垃圾回收效果收益不大但是是必要的.主要的收集對象為常量和需要卸載的類,類的回收機制有特定的要求.,并且十分的嚴苛.這個區域別名為Non-heap.在hotspot中使用堆中的永久區(其他JVM實現一般沒所謂的永久區)來實現方法區,這樣將垃圾回收器直接覆蓋到了堆中的方法區(hotspot中的永久區),省去了專門為永久區進行垃圾收集的工作,但是這樣增加了堆溢出的風險,因此現在jdk逐漸講方法區移除到堆外.

6.運行時常量池

 屬于方法區的一個部分,存放Class類編譯器各種能夠確定的字面量和符號引用(和直接引用).字節碼格式中一般對其他區域要求嚴格,這個區域是比較寬松的.受到方法區大小限制,申請不到足夠的內存也會拋出OutOfMemoryError異常.

7.堆外內存(直接內存)

 有些時候我們可以直接使用堆外內存,例如jdk1.4引入的java nio就用channel與buffer調用本地方法在堆外分配內存,使用堆上的DirectByteBuffer作為引用進行操作,這樣減少了堆內外數據交換,提升性能.當然這個區域的大小受到物理內存大小限制,申請不夠拋出OutOfMemoryError異常.


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久99久久亚洲国产| 91日本在线视频| 亚洲国产日韩精品在线| 精品视频在线导航| 日韩av免费看网站| 日韩中文字幕在线免费观看| 欧美精品激情视频| 性欧美暴力猛交69hd| 欧美日韩国产91| 中文字幕国产精品久久| 亚洲一区二区三区视频| 亚洲男人天堂2023| 一个人看的www久久| 国产精品高潮在线| 久久久噜噜噜久噜久久| 欧美在线视频播放| 77777亚洲午夜久久多人| 日韩免费av片在线观看| 精品一区二区亚洲| 欧美在线视频观看| 国产一区二区三区三区在线观看| 欧美裸体xxxx极品少妇| 欧美亚洲国产另类| 精品国产欧美成人夜夜嗨| 日韩在线免费视频观看| 视频在线观看99| 在线观看视频亚洲| 亚洲精品综合精品自拍| 欧美视频专区一二在线观看| 揄拍成人国产精品视频| 国产欧美精品xxxx另类| 成人免费视频网| 亚洲美腿欧美激情另类| 亚洲人成77777在线观看网| 久久久久国色av免费观看性色| 欧美在线观看一区二区三区| 亚洲国产天堂久久综合网| 久久精品影视伊人网| 狠狠色噜噜狠狠狠狠97| 中文字幕不卡在线视频极品| 中文字幕欧美日韩精品| 美女扒开尿口让男人操亚洲视频网站| 亚洲国产精品va在线看黑人动漫| 国产精品激情自拍| 国产在线一区二区三区| 国产精品一二三视频| 伊人久久精品视频| 亚洲国产精品99久久| 亚洲欧美综合精品久久成人| 欧美精品videos另类日本| 欧美成人午夜激情| 亚洲国产日韩一区| 国产欧美精品在线| 久久久精品一区二区| 国产精品人成电影在线观看| 国产精品久久久久免费a∨大胸| 中文字幕精品av| 亚洲在线一区二区| 色偷偷88888欧美精品久久久| 国产999精品视频| 91精品国产沙发| 亚洲视频电影图片偷拍一区| 欧美另类精品xxxx孕妇| 久久中文字幕视频| 成人免费淫片aa视频免费| 国产精品青草久久久久福利99| 亚洲欧美综合v| 成人av色在线观看| 久久男人资源视频| 91在线|亚洲| 色偷偷91综合久久噜噜| 国产精品久久久久久久app| 日韩欧美精品中文字幕| 亚洲人成网站色ww在线| 欧美极品少妇与黑人| 亚洲第一综合天堂另类专| 亚洲视频在线观看免费| 日本精品免费一区二区三区| 亚洲欧洲xxxx| 高跟丝袜一区二区三区| 欧美贵妇videos办公室| 免费99精品国产自在在线| 亚洲欧美日韩一区二区在线| 一级做a爰片久久毛片美女图片| 欧美日韩国产精品一区| 欧美黑人视频一区| 深夜福利91大全| 欧美亚洲成人精品| 色午夜这里只有精品| 亚洲人成在线观看网站高清| 91av在线看| 欧美性视频网站| 久久91精品国产91久久久| 日韩精品极品毛片系列视频| 欧美色视频日本版| 亚洲毛片一区二区| 国产日韩精品在线播放| 亚洲国产精彩中文乱码av在线播放| 亚洲天堂久久av| 岛国视频午夜一区免费在线观看| 久久国产精品网站| 国产精品老牛影院在线观看| 成人黄色av播放免费| 色视频www在线播放国产成人| 久久天天躁狠狠躁夜夜爽蜜月| 91免费视频网站| 国产精品高潮呻吟久久av无限| 97成人超碰免| 国产成人高清激情视频在线观看| 成人性生交大片免费看视频直播| 成人有码在线视频| 亚洲精品白浆高清久久久久久| 亚洲欧洲在线免费| 一本色道久久综合狠狠躁篇的优点| 久久久久久久国产精品| 91久久久亚洲精品| 亚洲欧美精品一区二区| 久久色精品视频| 亚洲国产精品久久| 国产精品情侣自拍| 中文字幕在线看视频国产欧美在线看完整| 午夜免费在线观看精品视频| 成人激情免费在线| 国产欧美中文字幕| 日本欧美黄网站| 亲子乱一区二区三区电影| 国内精品一区二区三区| 日韩在线视频线视频免费网站| 欧美成人午夜免费视在线看片| 91国产高清在线| 国产精品免费视频久久久| 另类视频在线观看| 亚洲va男人天堂| 欧美中文字幕第一页| 国产精品人成电影| 午夜精品久久久久久99热| 狠狠干狠狠久久| 色噜噜狠狠色综合网图区| 中文字幕亚洲图片| 日本免费久久高清视频| 精品国产一区二区在线| 亚洲va久久久噜噜噜久久天堂| 在线观看日韩欧美| 欧美日韩中文字幕综合视频| 欧美视频在线视频| 最近2019中文字幕第三页视频| 欧美性开放视频| 久久久久成人精品| 中文字幕日韩在线播放| 国产精品国产三级国产aⅴ9色| 欧美与黑人午夜性猛交久久久| 久久综合国产精品台湾中文娱乐网| 国产亚洲精品久久久优势| 日韩美女主播视频| 国产啪精品视频网站| 精品欧美激情精品一区| 在线视频欧美日韩| 色中色综合影院手机版在线观看| 久久免费视频这里只有精品| 97人人模人人爽人人喊中文字| 91精品国产91久久久久福利| 国产精品扒开腿做爽爽爽男男| 亚洲xxxx妇黄裸体| 中文字幕日韩高清|