婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > java虛擬機(jī)中棧的運(yùn)行知識(shí)點(diǎn)總結(jié)

java虛擬機(jī)中棧的運(yùn)行知識(shí)點(diǎn)總結(jié)

熱門標(biāo)簽:無錫客服外呼系統(tǒng)一般多少錢 高德地圖標(biāo)注是免費(fèi)的嗎 地圖標(biāo)注視頻廣告 梅州外呼業(yè)務(wù)系統(tǒng) 洪澤縣地圖標(biāo)注 百度地圖標(biāo)注位置怎么修改 老人電話機(jī)器人 北京電信外呼系統(tǒng)靠譜嗎 大連crm外呼系統(tǒng)

運(yùn)行原理

1、不同線程中所包含的棧幀是不允許存在相互引用的。

2、如果當(dāng)前方法調(diào)用了其他方法,方法返回之際,當(dāng)前棧幀會(huì)傳回此方法的執(zhí)行結(jié)果給當(dāng)前一個(gè)棧針,并且虛擬機(jī)會(huì)丟棄當(dāng)前棧幀,使得前一個(gè)棧幀重新成為當(dāng)前棧幀。

3、Java方法有兩種返回函數(shù)的方式,一種是正常的函數(shù)返回,使用return指令;另一種是拋出異常。不管使用哪種方式,都會(huì)導(dǎo)致棧幀被彈出。

實(shí)例

public class StackFrameTest {
    public static void main(String[] args) {
        StackFrameTest stackFrameTest = new StackFrameTest();
        stackFrameTest.method1();
    }
 
    public void method1(){
        System.out.println("method1()開始執(zhí)行");
        method2();
        System.out.println("method1()執(zhí)行結(jié)束");
    }
    public int method2(){
        System.out.println("method2()開始執(zhí)行");
        int i = 100;
        int m = (int)method3();
        System.out.println("method2()即將結(jié)束");
        return i + m;
    }
    public double method3(){
        System.out.println("method3()開始執(zhí)行");
        double j = 3.1;
        System.out.println("method3()即將結(jié)束");
        return j;
    }
}

知識(shí)點(diǎn)擴(kuò)充:

1. Java棧也稱為虛擬機(jī)棧,也就是我們常常所說的棧。 Java棧是Java方法執(zhí)行的內(nèi)存模型。

2. Java棧中存放的是一個(gè)個(gè)的棧幀,每個(gè)棧幀對應(yīng)一個(gè)被調(diào)用的方法,在棧幀中包括局部變量表(Local Variables)、操作數(shù)棧(Operand Stack)、指向當(dāng)前方法所屬的類的運(yùn)行時(shí)常量池(運(yùn)行時(shí)常量池的概念在方法區(qū)部分會(huì)談到)的引用(Reference to runtime constant pool)、方法返回地址(Return Address)和一些額外的附加信息。 當(dāng)線程執(zhí)行一個(gè)方法時(shí),就會(huì)隨之創(chuàng)建一個(gè)對應(yīng)的棧幀,并將建立的棧幀壓棧。當(dāng)方法執(zhí)行完畢之后,便會(huì)將棧幀出棧。 因此對于方法沒有存在回收資源一說 。

3. 局部變量表,顧名思義,想必不用解釋大家應(yīng)該明白它的作用了吧。就是用來存儲(chǔ)方法中的局部變量(包括在方法中聲明的非靜態(tài)變量以及函數(shù)形參)。對于基本數(shù)據(jù)類型的變量,則直接存儲(chǔ)它的值,對于引用類型的變量,則存的是指向?qū)ο蟮囊谩>植孔兞勘淼拇笮≡诰幾g器就可以確定其大小了,因此在程序執(zhí)行期間局部變量表的大小是不會(huì)改變的。

4. 操作數(shù)棧,想必學(xué)過數(shù)據(jù)結(jié)構(gòu)中的棧的朋友想必對表達(dá)式求值問題不會(huì)陌生,棧最典型的一個(gè)應(yīng)用就是用來對表達(dá)式求值。想想一個(gè)線程執(zhí)行方法的過程中,實(shí)際上就是不斷執(zhí)行語句的過程,而歸根到底就是進(jìn)行計(jì)算的過程。因此可以這么說,程序中的所有計(jì)算過程都是在借助于操作數(shù) 。

以上就是java虛擬機(jī)中棧的運(yùn)行知識(shí)點(diǎn)總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于java虛擬機(jī)中棧的運(yùn)行原理的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • java虛擬機(jī)JVM類加載機(jī)制原理(面試必問)
  • vmware虛擬機(jī)安裝deepin20最全詳細(xì)過程
  • Java虛擬機(jī)類加載器之雙親委派機(jī)制模型案例
  • Python動(dòng)態(tài)規(guī)劃實(shí)現(xiàn)虛擬機(jī)部署的算法思想
  • 最新虛擬機(jī)VMware 14安裝教程
  • Python使用oslo.vmware管理ESXI虛擬機(jī)的示例參考
  • Java虛擬機(jī)精選面試題20道
  • Java reservedcodecachesize虛擬機(jī)參數(shù)案例詳解

標(biāo)簽:安慶 洛陽 長春 清遠(yuǎn) 吉林 岳陽 怒江 泉州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《java虛擬機(jī)中棧的運(yùn)行知識(shí)點(diǎn)總結(jié)》,本文關(guān)鍵詞  java,虛擬,機(jī)中,棧,的,運(yùn)行,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《java虛擬機(jī)中棧的運(yùn)行知識(shí)點(diǎn)總結(jié)》相關(guān)的同類信息!
  • 本頁收集關(guān)于java虛擬機(jī)中棧的運(yùn)行知識(shí)點(diǎn)總結(jié)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 潜山县| 海安县| 天长市| 宜春市| 西林县| 新闻| 东明县| 侯马市| 盐源县| 麟游县| 缙云县| 双城市| 祁连县| 平昌县| 安平县| 东乌珠穆沁旗| SHOW| 陈巴尔虎旗| 嘉定区| 进贤县| 驻马店市| 浦城县| 龙川县| 安远县| 东山县| 锡林浩特市| 安泽县| 会东县| 南丹县| 张家口市| 惠水县| 乳源| 五华县| 太原市| 鄂尔多斯市| 达拉特旗| 金山区| 禄劝| 乌拉特前旗| 仙居县| 合作市|