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

下載本文檔

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

文檔簡(jiǎn)介

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

虛擬機(jī)運(yùn)行時(shí)

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

//publicstaticintstaticInt;不是類變量初始化語(yǔ)句

publicstaticintstaticInt=5;

publicstaticdoublec=Math.random()*0.3;靜態(tài)語(yǔ)句塊: static{ 。。。。。 }2023/5/19類初始化:<clinit>方法2023/5/19實(shí)例初始化:<init>方法2023/5/19方法表-方法查找2023/5/19方法表-方法查找虛擬機(jī)規(guī)范沒(méi)有規(guī)定必須有方法表(方法表需要額外的內(nèi)存)在字節(jié)碼裝載的時(shí)候存放到方法區(qū)中私有方法和實(shí)例初始化方法調(diào)用指令:invokespecial靜態(tài)方法的調(diào)用指令:invokestatic每個(gè)類都有一個(gè)方法表,方法表包含從超類繼承來(lái)的實(shí)例方法方法表中的方法是非私有、非靜態(tài)、非初始化的實(shí)例方法方法表可以理解為一個(gè)指針數(shù)組,每個(gè)元素指向方法區(qū)中的某個(gè)方法實(shí)例方法調(diào)用指令:invokevirtual接口方法調(diào)用指令:invokeinterface每個(gè)堆中的實(shí)例都有一個(gè)指向方法區(qū)的指針都說(shuō)接口方法調(diào)用比實(shí)例方法慢,為什么why?2023/5/19方法表-Dog的方法表20缺23準(zhǔn)/5嫂/1湊8方法蘭表-談Co婆ck費(fèi)er斬Sp劉an仔ie意l的蘋方法執(zhí)表20艘23豆/5場(chǎng)/1離8方法順表-返Do蛇g的勸方法家表20房誠(chéng)23景/5霜/1增8堆堆用票來(lái)存圍儲(chǔ)創(chuàng)瘡建的禍實(shí)例禽(對(duì)腹象、莊數(shù)組宜)有分鈔配新火對(duì)象予的指柄令,舍但沒(méi)箱有釋主放對(duì)使象內(nèi)具存的尺指令筍,釋角放內(nèi)窩存完壇全交時(shí)由垃密圾收定集器闖來(lái)做一個(gè)粗Ja烤va繞程序恭一個(gè)翠Ja沈va壟虛擬液機(jī)實(shí)仁例,暈一個(gè)蘿Ja點(diǎn)va架虛擬毛機(jī)實(shí)渣例一新個(gè)堆虛擬圖機(jī)或裕者J害av粉a程佳序之驕間的裳堆互饅不干孤擾,依但同蕩一個(gè)熊Ja幟va驗(yàn)程序虜中的扔不同控線程莊共享妨堆堆空部間不拌一定糞是連儲(chǔ)續(xù)的駁內(nèi)存胳區(qū),蜂可動(dòng)韻態(tài)伸推縮20層23掙/5什/1反8堆-聚實(shí)現(xiàn)攪1指向教對(duì)象咐池的行指針指向根類數(shù)潛據(jù)的恢指針堆句柄對(duì)象實(shí)例答數(shù)據(jù)對(duì)象嘗鎖、兵等待怨集合垃圾容收集穩(wěn)相關(guān)驗(yàn)數(shù)據(jù)。。襖。。。腦。方法脊區(qū)類數(shù)肥據(jù)類數(shù)敏據(jù)類數(shù)賭據(jù)類數(shù)籠據(jù)類數(shù)喇據(jù)。。嘴。指向病句柄煌池的裁指針。。輩。一個(gè)節(jié)對(duì)象華的引評(píng)用20端23椒/5呼/1燈8堆-澤實(shí)現(xiàn)謊2指向晚類數(shù)捷據(jù)的近指針實(shí)例榮數(shù)據(jù)堆方法及區(qū)類數(shù)沸據(jù)類數(shù)字據(jù)類數(shù)香據(jù)類數(shù)塊據(jù)類數(shù)壟據(jù)。。衛(wèi)。指向圣堆的渴指針。。般。一個(gè)挺對(duì)象糧的引礦用對(duì)象呢鎖、胡等待呆集合垃圾死收集丹相關(guān)麥數(shù)據(jù)。。防。。對(duì)象20竹23昏/5惕/1蹈8程序夢(mèng)計(jì)數(shù)信器每個(gè)死線程筋一個(gè)阿程序碰計(jì)數(shù)坐器總是孫指向測(cè)下一本條指使令(在調(diào)奸用方直法返蜜回的桑時(shí)候撓是指某向哪摸兒?)在方邀法內(nèi)評(píng)跳轉(zhuǎn)進(jìn)的時(shí)欺候會(huì)石用到簡(jiǎn)程序蓬計(jì)數(shù)簡(jiǎn)器,途比如腸:g莫ot猴o裝ff騾f(xié)9關(guān)(程芒序計(jì)宅數(shù)器結(jié)的值羞-7拍等于霸下一竄跳指鋼令的蘆位置璃)程序員計(jì)數(shù)殃器還聚有啥濕作用懼?20垮23造/5幕/1第8Ja致va液棧往J公av斧a棧浪中壓違棧和舉出棧利的目服標(biāo)是梁棧幀每調(diào)終用一賴個(gè)方諒法就招創(chuàng)建刪一個(gè)懇棧幀Ja云va圓棧通懇常是熱預(yù)先勿分配聞一個(gè)撐較長(zhǎng)望的內(nèi)爹存空湖間,累當(dāng)空硬間不威夠的必時(shí)候昏再擴(kuò)袋展J屆av堪a棧棧幀六(與吳方法損對(duì)應(yīng)較)局部彎變量控區(qū)(劉存放隙方法敬參數(shù)暖和方戚法體過(guò)中的偷局部弱變量穿,生臺(tái)命周窮期短酬)操作現(xiàn)數(shù)棧條(棧物幀中盟的棧殃,用讀于指傍令操員作數(shù)組存儲(chǔ)飛,生舅命周念期短慮)幀數(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會(huì)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來(lái)()棧幀Pr包in垃tS呈tr絨ea彼m類pr字in倉(cāng)tl長(zhǎng)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語(yǔ)dT拾wo狐Ty煎pe晴s(僻)的棧庭幀01

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論