欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2021年06月24日 08:24:10   作者:小妮淺淺  
在本篇文章里小編給大家整理的是一篇關(guān)于java虛擬機(jī)中棧的運(yùn)行知識點(diǎn)總結(jié),有需要的朋友們可以學(xué)習(xí)參考下。

運(yùn)行原理

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

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

3、Java方法有兩種返回函數(shù)的方式,一種是正常的函數(shù)返回,使用return指令;另一種是拋出異常。不管使用哪種方式,都會導(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;
    }
}

知識點(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ū)部分會談到)的引用(Reference to runtime constant pool)、方法返回地址(Return Address)和一些額外的附加信息。 當(dāng)線程執(zhí)行一個(gè)方法時(shí),就會隨之創(chuàng)建一個(gè)對應(yīng)的棧幀,并將建立的棧幀壓棧。當(dāng)方法執(zhí)行完畢之后,便會將棧幀出棧。 因此對于方法沒有存在回收資源一說 。

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

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

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

相關(guān)文章

  • 在IPython中執(zhí)行Python程序文件的示例

    在IPython中執(zhí)行Python程序文件的示例

    今天小編就為大家分享一篇在IPython中執(zhí)行Python程序文件的示例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Python處理文本數(shù)據(jù)的方法詳解

    Python處理文本數(shù)據(jù)的方法詳解

    學(xué)習(xí)Python時(shí),它總能讓人深刻體會到這款語言的魅力。今天小編為大家?guī)硪粋€(gè)有趣的項(xiàng)目,用Python處理文本數(shù)據(jù),一起來看看今天的問題吧
    2022-06-06
  • OpenCV全景圖像拼接的實(shí)現(xiàn)示例

    OpenCV全景圖像拼接的實(shí)現(xiàn)示例

    opencv其實(shí)自己就有實(shí)現(xiàn)圖像拼接的算法,當(dāng)然效果也是相當(dāng)好的,本文主要介紹了OpenCV全景圖像拼接,感興趣的可以一起來了解一下
    2021-06-06
  • Python多進(jìn)程庫multiprocessing中進(jìn)程池Pool類的使用詳解

    Python多進(jìn)程庫multiprocessing中進(jìn)程池Pool類的使用詳解

    這篇文章主要介紹了Python多進(jìn)程庫multiprocessing中進(jìn)程池Pool類的使用詳解,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Windows下PyCharm安裝圖文教程

    Windows下PyCharm安裝圖文教程

    這篇文章主要為大家詳細(xì)介紹了Windows下PyCharm安裝圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Php多進(jìn)程實(shí)現(xiàn)代碼

    Php多進(jìn)程實(shí)現(xiàn)代碼

    這篇文章主要介紹了Php多進(jìn)程實(shí)現(xiàn)編程實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • python中分組函數(shù)groupby和分組運(yùn)算函數(shù)agg的使用

    python中分組函數(shù)groupby和分組運(yùn)算函數(shù)agg的使用

    本文主要介紹了python中分組函數(shù)groupby和分組運(yùn)算函數(shù)agg的使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • python中map()函數(shù)的使用方法示例

    python中map()函數(shù)的使用方法示例

    map()是 Python 內(nèi)置的高階函數(shù),它接收一個(gè)函數(shù) f 和一個(gè) list,并通過把函數(shù) f 依次作用在 list 的每個(gè)元素上,得到一個(gè)新的 list 并返回。下面這篇文章主要給大家介紹了關(guān)于python中map()函數(shù)的使用方法,需要的朋友可以參考下
    2017-09-09
  • python?sklearn與pandas實(shí)現(xiàn)缺失值數(shù)據(jù)預(yù)處理流程詳解

    python?sklearn與pandas實(shí)現(xiàn)缺失值數(shù)據(jù)預(yù)處理流程詳解

    對于缺失值的處理,主要配合使用sklearn.impute中的SimpleImputer類、pandas、numpy。其中由于pandas對于數(shù)據(jù)探索、分析和探查的支持較為良好,因此圍繞pandas的缺失值處理較為常用
    2022-09-09
  • Python重新加載模塊的實(shí)現(xiàn)方法

    Python重新加載模塊的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇Python重新加載模塊的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10

最新評論