真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

淺談Java虛擬機執(zhí)行引擎知識-創(chuàng)新互聯(lián)

小編這次要給大家分享的是淺談Java虛擬機執(zhí)行引擎知識,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:主機域名、網(wǎng)站空間、營銷軟件、網(wǎng)站建設、來賓網(wǎng)站維護、網(wǎng)站推廣。

執(zhí)行引擎

也只有幾個概念, JVM方法調(diào)用和執(zhí)行的基礎數(shù)據(jù)結構是 棧幀, 是內(nèi)存區(qū)域中 虛擬機棧中的棧元素, 每一個方法的執(zhí)行就對應著一個棧幀在虛擬機棧中出棧入棧的過程.

棧幀:則是包含有局部變量表, 操作數(shù)棧, 動態(tài)連接, 方法返回地址, 附加信息.

1 局部變量表:

存儲單位是 slot, 一個slot占據(jù)32位, 對于64位的數(shù)據(jù)類型, 則是分配連續(xù)兩個slot空間. 而對于一個非靜態(tài)方法而言, 有一個隱藏參數(shù), 為 this, 而在局部變量表中的變量存儲順序則是

this -> 方法參數(shù) -> 方法體內(nèi)的變量(slot可以重用, 超出作用域即可復用.) 方法在編譯完成后, 其所需的空間已經(jīng)確定.

(這里也是需要注意的一個地方, 變量的作用域常常會覆蓋整個方法, 即使變量已經(jīng)不再使用, 但只要還在作用域內(nèi), 其slot空間就無法給其他變量使用, 因此, 最好是在需要使用到變量時, 定義在合理的作用域范圍內(nèi).)

2 操作數(shù)棧:

在操作數(shù)棧中需要注意,其數(shù)據(jù)類型必須與字節(jié)碼指令的序列嚴格匹配.

3 動態(tài)連接: 稍后詳解

4 方法返回地址:

方法有兩種退出方式, 正常退出, 異常退出, 當正常退出后, 會恢復上層方法的局部變量表, 操作數(shù)棧, 并把方法返回結果壓入調(diào)用者的操作數(shù)棧.

方法調(diào)用

方法調(diào)用階段的唯一目的是, 確定調(diào)用方法的版本究竟是哪一個.

在Java虛擬機中提供了5條方法調(diào)用的相關指令:

invokestatic: 調(diào)用靜態(tài)方法

invokespecial: 調(diào)用實例構造器方法, 私有方法, 父類方法

invokevirtual: 調(diào)用所有的虛方法

invokeinterface: 調(diào)用所有的接口方法

invokedynamic: 先在運行時動態(tài)解析出調(diào)用點限定符所引用的方法, 然后再執(zhí)行該方法.

虛方法是非虛方法的補集, 什么是非虛方法呢? 能夠在編譯器就確定將要調(diào)用的究竟是哪個方法, 進而將該方法的符號引用 轉換為 相應的直接引用的 方法就被稱作非虛方法.

我們知道在類加載時, 在相應的類信息中, 存有對應方法的相關信息, 常量池中存有相關直接引用. 在類加載的解析階段, 即會將這部分的符號引用轉換為直接引用.

那么什么方法才滿足這種條件呢?

能夠被invokespecial 和 invokestatic指令調(diào)用的方法, 都是可以在編譯器確定的方法, 即靜態(tài)方法, 私有方法, 父類方法(super.), 實例構造器.

在final方法是個特殊點, 雖然final方法的執(zhí)行為 invokevirtual, 但它依然屬于非虛方法, 不難理解, final方法不能夠被重寫.

方法分派(dispatch)

1 靜態(tài)分派

對于代碼

Human man = new Man();

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


網(wǎng)站欄目:淺談Java虛擬機執(zhí)行引擎知識-創(chuàng)新互聯(lián)
當前路徑:http://weahome.cn/article/csgeii.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部