您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)java虛擬機(jī)中棧結(jié)構(gòu)是怎樣的,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
1. 簡(jiǎn)單,只需理解基本的概念,就可以編寫(xiě)適合于各種情況的應(yīng)用程序;2. 面向?qū)ο螅?. 分布性,Java是面向網(wǎng)絡(luò)的語(yǔ)言;4. 魯棒性,java提供自動(dòng)垃圾收集來(lái)進(jìn)行內(nèi)存管理,防止程序員在管理內(nèi)存時(shí)容易產(chǎn)生的錯(cuò)誤。;5. 安全性,用于網(wǎng)絡(luò)、分布環(huán)境下的Java必須防止病毒的入侵。6. 體系結(jié)構(gòu)中立,只要安裝了Java運(yùn)行時(shí)系統(tǒng),就可在任意處理器上運(yùn)行。7. 可移植性,Java可以方便地移植到網(wǎng)絡(luò)上的不同機(jī)器。8.解釋執(zhí)行,Java解釋器直接對(duì)Java字節(jié)碼進(jìn)行解釋執(zhí)行。
對(duì)于java中的內(nèi)存來(lái)說(shuō),有一些特定的名詞,我們是沒(méi)有進(jìn)行了系統(tǒng)的學(xué)習(xí),這使得對(duì)于概念的理解上比如模糊,棧結(jié)構(gòu)就是一個(gè)比較典型的詞。相信在線(xiàn)程的存儲(chǔ)、java虛擬機(jī)中,我們都有頻繁的接觸到。下面我們就對(duì)java棧進(jìn)行說(shuō)明,在對(duì)詳細(xì)的結(jié)構(gòu)展開(kāi)分析,大家都來(lái)看看吧。
1、java棧說(shuō)明
Java棧是JVM作為基于棧結(jié)構(gòu)的計(jì)算機(jī)存儲(chǔ)信息的主要方式。在JVM獲得一個(gè)Java字節(jié)碼應(yīng)用程序之后,它將為這個(gè)代碼中的每個(gè)類(lèi)方法創(chuàng)建一個(gè)棧框架來(lái)保存這個(gè)方法的狀態(tài)信息。
2、結(jié)構(gòu)分析
每一個(gè)??蚣馨?lèi)信息:
局部變量
執(zhí)行環(huán)境
操作數(shù)棧
本地變量是用來(lái)存儲(chǔ)某個(gè)類(lèi)方法中使用的本地變量。這個(gè)vars寄存器指向這個(gè)變量表中的第一個(gè)本地變量。
在解釋Java字節(jié)碼時(shí),執(zhí)行環(huán)境用來(lái)保存解釋器所需的信息。這些函數(shù)為:上次調(diào)用的方法的棧頂和棧底指針,局部變量指針和操作數(shù)棧。實(shí)施環(huán)境是實(shí)施方法的控制中心。舉例來(lái)說(shuō),如果解釋器要執(zhí)行iadd(整型加法),則首先要從frame寄存器找到當(dāng)前的執(zhí)行環(huán)境,然后便會(huì)在執(zhí)行環(huán)境中找到操作數(shù)棧,從棧頂彈出兩個(gè)整數(shù)進(jìn)行加法,最后將結(jié)果壓入棧頂。
操作棧是用來(lái)存儲(chǔ)操作所需的操作數(shù)和操作結(jié)果。
關(guān)于“java虛擬機(jī)中棧結(jié)構(gòu)是怎樣的”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。