Java學(xué)習(xí)之虛擬機運行時_第1頁
Java學(xué)習(xí)之虛擬機運行時_第2頁
Java學(xué)習(xí)之虛擬機運行時_第3頁
Java學(xué)習(xí)之虛擬機運行時_第4頁
Java學(xué)習(xí)之虛擬機運行時_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

Java學(xué)習(xí)之--

虛擬機運行時

戎碼一生2023/5/19大綱虛擬機內(nèi)部體系結(jié)構(gòu)運行時基本流程方法表堆程序計數(shù)器Java棧執(zhí)行引擎2023/5/19虛擬機內(nèi)部體系結(jié)構(gòu)方法區(qū)堆棧本地方法棧PC寄存器類裝在子系統(tǒng)class文件執(zhí)行引擎運行時數(shù)據(jù)區(qū)2023/5/19運行時的流程開始裝載驗證準(zhǔn)備解析初始化執(zhí)行方法結(jié)束垃圾回收2023/5/19運行時的流程-裝載讀取二進(jìn)制流解析二進(jìn)制流,并存入方法區(qū)類型信息、字段、方法、常量池、類變量等創(chuàng)建一個該類型的java.lang.Class對象2023/5/19運行時的流程-驗證語義驗證比如:1.檢查final的類不能被繼承2.檢查final的方法不能被重寫3.檢查超類和子類的方法的兼容性(是否出現(xiàn)同名方法,但是不是重載的情況)4.檢查各常量池入口之間的一致性2023/5/19運行時的流程-準(zhǔn)備類變量的內(nèi)存分配類變量的默認(rèn)值設(shè)置a為實例變量,初始化階段該實例還未被創(chuàng)建。b為類變量,準(zhǔn)備階段分配內(nèi)存,并設(shè)置默認(rèn)值為0。2023/5/19運行時的流程-解析把符號引用替換成直接引用符號引用:和字節(jié)碼中的信息基本類似。直接引用:1.指向類型、類變量和類方法的直接引用可能是指向方法區(qū)的本地指針。2.指向?qū)嵗兞亢蛯嵗椒ǖ闹苯右枚际瞧屏俊?023/5/19運行時的流程-初始化初始化類變量的值有啥問題?2023/5/19運行時的流程-初始化初始化類變量的值先超類,后子類初始化階段,通過調(diào)用<clinit>方法對類變量初始化語句和靜態(tài)語句塊進(jìn)行初始化類變量初始化語句和靜態(tài)語句塊的執(zhí)行優(yōu)先級是相同的,按照J(rèn)ava源代碼中的順序一次執(zhí)行實例變量不在這個階段進(jìn)行初始化,而是在new操作的時候調(diào)用<init>方法進(jìn)行初始化類變量初始化語句:

//publicstaticintstaticInt;不是類變量初始化語句

publicstaticintstaticInt=5;

publicstaticdoublec=Math.random()*0.3;靜態(tài)語句塊: static{ 。。。。。 }2023/5/19類初始化:<clinit>方法2023/5/19實例初始化:<init>方法2023/5/19方法表-方法查找2023/5/19方法表-方法查找虛擬機規(guī)范沒有規(guī)定必須有方法表(方法表需要額外的內(nèi)存)在字節(jié)碼裝載的時候存放到方法區(qū)中私有方法和實例初始化方法調(diào)用指令:invokespecial靜態(tài)方法的調(diào)用指令:invokestatic每個類都有一個方法表,方法表包含從超類繼承來的實例方法方法表中的方法是非私有、非靜態(tài)、非初始化的實例方法方法表可以理解為一個指針數(shù)組,每個元素指向方法區(qū)中的某個方法實例方法調(diào)用指令:invokevirtual接口方法調(diào)用指令:invokeinterface每個堆中的實例都有一個指向方法區(qū)的指針都說接口方法調(diào)用比實例方法慢,為什么why?2023/5/19方法表-Dog的方法表20缺23準(zhǔn)/5嫂/1湊8方法蘭表-談Co婆ck費er斬Sp劉an仔ie意l的蘋方法執(zhí)表20艘23豆/5場/1離8方法順表-返Do蛇g的勸方法家表20房誠23景/5霜/1增8堆堆用票來存圍儲創(chuàng)瘡建的禍實例禽(對腹象、莊數(shù)組宜)有分鈔配新火對象予的指柄令,舍但沒箱有釋主放對使象內(nèi)具存的尺指令筍,釋角放內(nèi)窩存完壇全交時由垃密圾收定集器闖來做一個粗Ja烤va繞程序恭一個翠Ja沈va壟虛擬液機實仁例,暈一個蘿Ja點va架虛擬毛機實渣例一新個堆虛擬圖機或裕者J害av粉a程佳序之驕間的裳堆互饅不干孤擾,依但同蕩一個熊Ja幟va驗程序虜中的扔不同控線程莊共享妨堆堆空部間不拌一定糞是連儲續(xù)的駁內(nèi)存胳區(qū),蜂可動韻態(tài)伸推縮20層23掙/5什/1反8堆-聚實現(xiàn)攪1指向教對象咐池的行指針指向根類數(shù)潛據(jù)的恢指針堆句柄對象實例答數(shù)據(jù)對象嘗鎖、兵等待怨集合垃圾容收集穩(wěn)相關(guān)驗數(shù)據(jù)。。襖。。。腦。方法脊區(qū)類數(shù)肥據(jù)類數(shù)敏據(jù)類數(shù)賭據(jù)類數(shù)籠據(jù)類數(shù)喇據(jù)。。嘴。指向病句柄煌池的裁指針。。輩。一個節(jié)對象華的引評用20端23椒/5呼/1燈8堆-澤實現(xiàn)謊2指向晚類數(shù)捷據(jù)的近指針實例榮數(shù)據(jù)堆方法及區(qū)類數(shù)沸據(jù)類數(shù)字據(jù)類數(shù)香據(jù)類數(shù)塊據(jù)類數(shù)壟據(jù)。。衛(wèi)。指向圣堆的渴指針。。般。一個挺對象糧的引礦用對象呢鎖、胡等待呆集合垃圾死收集丹相關(guān)麥數(shù)據(jù)。。防。。對象20竹23昏/5惕/1蹈8程序夢計數(shù)信器每個死線程筋一個阿程序碰計數(shù)坐器總是孫指向測下一本條指使令(在調(diào)奸用方直法返蜜回的桑時候撓是指某向哪摸兒?)在方邀法內(nèi)評跳轉(zhuǎn)進(jìn)的時欺候會石用到簡程序蓬計數(shù)簡器,途比如腸:g莫ot猴o裝ff騾f(xié)9關(guān)(程芒序計宅數(shù)器結(jié)的值羞-7拍等于霸下一竄跳指鋼令的蘆位置璃)程序員計數(shù)殃器還聚有啥濕作用懼?20垮23造/5幕/1第8Ja致va液棧往J公av斧a棧浪中壓違棧和舉出棧利的目服標(biāo)是梁棧幀每調(diào)終用一賴個方諒法就招創(chuàng)建刪一個懇棧幀Ja云va圓棧通懇常是熱預(yù)先勿分配聞一個撐較長望的內(nèi)爹存空湖間,累當(dāng)空硬間不威夠的必時候昏再擴袋展J屆av堪a棧棧幀六(與吳方法損對應(yīng)較)局部彎變量控區(qū)(劉存放隙方法敬參數(shù)暖和方戚法體過中的偷局部弱變量穿,生臺命周窮期短酬)操作現(xiàn)數(shù)棧條(棧物幀中盟的棧殃,用讀于指傍令操員作數(shù)組存儲飛,生舅命周念期短慮)幀數(shù)烤據(jù)區(qū)里(存撿放常蜓量池各指針脆、異借常表辭的引域用、縮慧調(diào)試袍數(shù)據(jù)痛、支終持方耐法正赴常返蚊回)20烘23育/5匆/1激8Ja升va亂棧Ma槍in疏類ma壓in駱()棧幀Ma效in文類ma枝in乏()棧幀Cl遷as廢sA減類<i并ni葡t>棧幀Ma端in饅類ma奧in貨()棧幀Cl憑as添sA竊類ca拌ll潔Cl墻as金sB棟Me敘th登od盈()棧幀Ma掀in蜻類ma打in棒()棧幀Cl惑as會sA珠類ca臘ll斬Cl畝as雀sB彩Me拾th豆od咳()棧幀Cl灑as孫sB蔥類ca盤ll到()棧幀Ma菜in肚類ma軍in按()棧幀Cl與as生sA和類ca合ll稠Cl呆as零sB已Me凱th執(zhí)od攤()棧幀Cl醫(yī)as匠sB翁類ca干ll來()棧幀Pr包in垃tS呈tr絨ea彼m類pr字in倉tl長n(腰)棧幀Ma喬in步類ma昌in救()棧幀Ma挺in中類ma釣in破()棧幀Cl錄as遭sA妨類ca鴿ll弄Cl妹as撕sB伍Me妄th撫od汽()棧幀Cl畝as塔sB集類ca例ll睛()棧幀。。釘。。棧底棧頂<i違ni破t>存完成丸,出手棧pr網(wǎng)in斬tl豎n(徹)完沉成,郊出棧ca嫌ll我()狐完成誘,出笛棧ca蘆ll顯Cl拒as描sB霜Me陶th密od挪()幸和m墾ai跑n(牽)依稀次出拖棧20捆23淺/5鄙/1箱8Ja昨va宮棧-煮棧幀a指向融常量垂池的尿指針局部棟變量粥區(qū)幀數(shù)擦據(jù)區(qū)異常翼表的皆引用調(diào)試貼數(shù)據(jù)支持潮方法餃返回等等bcdghefth色is操作猶數(shù)棧012345791020劑23擦/5床/1贏8Ja表va挺棧-膨棧幀th鍵is康引用幀數(shù)析據(jù)區(qū)1re盈su額lt88魄.8纏8幀數(shù)是據(jù)區(qū)ad雕dA要nd麗Pr犁in摩t(障)的棧船幀ad語dT拾wo狐Ty煎pe晴s(僻)的棧庭幀01

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論