日韩在线首页I俄罗斯pornI男女猛烈激情XX00高潮动态I超碰免费97I乱人伦99久久I欧美日韩成人一区I最新日韩视频在线观看I粉嫩AV四季AV绯色AVI五月导航

×
新網 > 虛擬主機 > 正文

java虛擬機

  • 作者:新網
  • 來源:新網
  • 瀏覽:100
  • 2018-05-14 10:11:47

相信很多人在從事java不久都會對JVM有種神秘感以及對那些人的膜拜。每當說起JVM大概都會想到Java虛擬機運行時數據區,那么它是怎樣劃分的呢?那么今天小編就來談談我對它的理解。

   相信很多人在從事java不久都會對JVM有種神秘感以及對那些人的膜拜。每當說起JVM大概都會想到Java虛擬機運行時數據區,那么它是怎樣劃分的呢?那么今天小編就來談談我對它的理解。

psds16035.jpg

<div>         復制算法:它的出現就是為了解決標記清除的不足,套路就是將內存劃分為兩個等量大小的塊兒,對象都在其中一塊兒上,當這一塊兒造完了就將存活的對象復制到另一塊兒上,然后將剛剛那塊兒一次清理掉,這樣就不需要考慮內存碎片問題,動動指針按順序非配就搞定了,實現簡單效率高,但是代價有點大內存直接干了一半,適用于對象存活率低的區域,比如朝生夕死的新生代。
  標記-整理算法:復制算法看起來很吊,但是對于對象存活率高的區域就顯得力不從心了,而且如果不想浪費一半的空間的話,就需要進行空間分配擔保(抵押貸款),所以老年代不能這么搞,進而出現了標記-整理算法,套路跟標記-清除一樣,只是不直接清理可回收的對象,而是存活的往一邊兒移動,然后根據分界線去干掉另一邊兒,可以看出該算法要進行對象的移動,成本相對略高,但好處則是不會產生內存碎片。
  方法區
  方法區多數人認為的永久代,方法區與堆一樣是線程共享的內存區域,類使用要經過加載、連接(驗證、準備、解析)和初始化,加載后的類信息就存在方法區特定的數據結構中,主要包括:類的全路徑名包括超類(如果這個類是Object則它沒有超類)、類的類型、類的訪問修飾符、直接接口全限定名的有序列表、運行時常量池(類版本、字段、方法信息、常量、類靜態變量、裝載器信息) 等等。由于線程都共享方法區,所以方法區的數據必須時線程安全的,如果有2個甚至多個線程同時訪問某個類,而這類又沒被JVM加載,那么JVM只允許一個線程去加載(雙親委派),其它線程必須等待。方法區的內存不一定是連續的,可以動態擴展大小,可以選擇不實現GC,GC的目標主要是常量池的回收和類型的卸載,所以想想就好沒多少便宜可撿,因為回收條件比較苛刻,當方法區無法滿足內存分配需求時將OOM(String.intern()是個好例子)。
  程序計數器
  程序計數器屬于線程私有的,它是當前線程所執行字節碼的指示器(執行到那兒了),它是一塊較小的內存空間,線程下一步該干撒就是通過字節碼解釋器改變計數器來執行的,每個線程都有自己的程序計數器,多線程就是輪流切換它來實現,Java方法記錄的是虛擬機字節碼指令地址,Native方法沒有記錄,程序計數器在JVM中是唯一一個沒有定義OOM的區域。
  虛擬機棧
  如程序計數器一樣,Java虛擬機棧也屬于線程私有,所以它的生命周期與線程一樣。它屬于Java方法執行的內存模型,每個方法執行都會創建一個棧幀,主要存儲著方法出口信息、局部變量表、操作數棧、動態鏈接。當線程請求的棧幀深度大于虛擬機所允許的深度會SOF,若虛擬機棧動態擴展時無法申請到足夠的內存會OOM。
  方法出口信息:正常方法返回時可能需要在棧幀中保存一些信息,用來幫助恢復它的上層方法的執行狀態,如果有返回值,則把它壓入調用者棧幀的操作數棧中,調整計數器的值以指向方法調用指令后面的一條指令,若方法異常退出,那么返回地址是通過異常處理器來確定的,棧幀中一般不會保存這部分信息。
  局部變量表:所需的內存空間在編譯期確定,一旦確定無法更改大小,它存放著編譯期的各種基本數據類型、reference類型(可能是對象引用指針,也可能是個句柄)、returnAddress類型(指向某條字節碼指令的地址)。
  操作數棧:棧幀剛創建時,操作數棧是沒有數據的,當執行方法操作時,會存放從局部變量表復制的常量或者變量,包括方法入參和返回值,操作數棧都一個固定的棧深度,入棧按先進后出方式,最大深度由編譯期確定,基本類型除了long,double用2個深度,其他都用一個。
  動態鏈接:class的常量池中存在有大量的符號引用,字節碼中的方法調用指令就以常量池中指向方法的符號引用為參數,這些符號引用分為兩種,一種就是類加載的時候,靜態解析的那些final 和static代碼塊,得到的直接引用,還有一種是運行期間轉化的(每個棧幀都包含一個指向運行時常量池中該棧幀所屬方法的引用),這種就是動態鏈接。
  本地方法棧
  跟虛擬機棧的作用是一個屌樣,唯一區別就是虛擬機棧是為字節碼服務的,而它是為Native方法服務,與虛擬機棧一樣,當線程請求的棧幀深度大于虛擬機所允許的深度會SOF,若虛擬機棧動態擴展時無法申請到足夠的內存會OOM。
  直接內存
  Direct Memory 雖然不屬于虛擬機運行數據區,但在被NIO引入后一直頻繁使用(比如堆外緩存),可以用Native方法直接分配堆外內存,然后在堆中去引用這塊兒區域(DirectByteBuffer就是),如果動態擴展內存時達到物理內存限制會OOM。
  內存分配策略以及類加載機制以后再補,先寫到這兒吧,未完待續!

免責聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,也不承認相關法律責任。如果您發現本社區中有涉嫌抄襲的內容,請發送郵件至:operations@xinnet.com進行舉報,并提供相關證據,一經查實,本站將立刻刪除涉嫌侵權內容。

免費咨詢獲取折扣

Loading
主站蜘蛛池模板: 欧美v日本| 色老头av亚洲一区二区男男 | 六月丁香久久 | 在线|国产精品女主播阳台 美女视频黄免费看 | 三级欧美日韩 | 日韩一区二区三区四区五区六区 | 日本高清视频免费观看 | 可以看的毛片 | 成人免费无码视频在线网站 | 欧av在线| 国产裸体丰满白嫩大尺度尤物可乐 | 黄色a级在线观看 | 国产v综合v亚洲欧美大 | jav久久亚洲欧美精品 | 久久av高清无码 | 国产精品免费久久久久软件 | 性生交大片免费看女人按摩 | 久久影院视频 | 99久久国语露脸精品国产 | 亚洲啪av永久无码精品放毛片 | 亚洲乳大丰满中文字幕 | 91手机在线观看 | 97人妻熟女成人免费视频色戒 | 亚洲成a∧人片在线播放黑人 | 亚洲福利视频一区二区 | 经典三级伦理另类基地 | 欧美日韩精品suv | 亚洲精品高清国产一久久 | 青草伊人网 | 日韩人妻无码精品一专区 | 秋霞av无码观看一区二区三区 | 国产伦子真实事例对白 | 午夜视频久久久久一区 | av网站在线免费看 | 久久人人爽人人爽人人片av东京热 | 成年美女黄网站色大片免费看 | 黄色天天影视 | 偷柏自拍亚洲综合在线 | 麻豆国产一区 | 国产做受69高潮 | 国内毛片视频 | 亚洲图片欧美激情 | 亚洲愉拍自拍另类图片 | 生活片一级片 | 国产精品无码a∨果冻传媒 性无码专区无码 | 日本视频高清一区二区三区 | 美女露隐私网站 | 另类三区 | 国产资源在线看 | 四虎国产永久在线精品 | 色诱久久av | 深夜国产福利 | 日韩av资源 | 黄色片99 | 欧美黑人一级爽快片淫片高清 | 亚洲色图40p | 国产又粗又黄又爽的大片 | 99国产欧美久久久精品 | 亚洲精品久久午夜无码一区二区 | 女男羞羞视频网站免费 | www.99日本精品片com | av片在线看免费高清网站 | 久热中文字幕在线精品观 | 欧美做受高潮中文字幕 | 亚洲乱码在线卡一卡二卡新区 | 日韩在线第二页 | 污污内射在线观看一区二区少妇 | 天天上天天添天天爱少妇 | 国产a√精品区二区三区四区 | 挺进邻居丰满少妇的身体 | 四虎影 | 色噜噜狠狠狠狠色综合久 | 91欧美视频 | 国产精品高潮呻吟久久av野狼 | 国产三级av片 | 免费无码影视在线观看mov | 亚洲人成影院在线观看 | 午夜福利理论片高清在线观看 | 日韩精品人妻系列无码专区免费 | 成人做爰69片免费看网站野花 | 9九色桋品熟女内射 | 亚洲人av在线无码影院观看 | 亚洲精品无码高潮喷水a片软 | 激情天堂网 | 日韩国产亚洲欧美成人图片 | 黄色av毛片 | 在线人视频观看免费 | 成人小视频在线观看 | 亚洲奶水xxxx哺乳期 | 成人免费影片在线观看 | 亚洲色婷婷综合久久 | 播放灌醉水嫩大学生国内精品 | 国产aaaaav久久久一区二区 | 菠萝菠萝蜜午夜视频在线播放观看 | 热久久最新网址 | 大屁股熟女白浆一区二区 | 国产视频三区 | 高潮又爽又黄又无遮挡动态图 | 中文字幕日韩一区二区不卡 |