濮阳杆衣贸易有限公司

主頁 > 知識庫 > java虛擬機中棧的運行知識點總結

java虛擬機中棧的運行知識點總結

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

運行原理

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

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

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

實例

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í)行結束");
    }
    public int method2(){
        System.out.println("method2()開始執(zhí)行");
        int i = 100;
        int m = (int)method3();
        System.out.println("method2()即將結束");
        return i + m;
    }
    public double method3(){
        System.out.println("method3()開始執(zhí)行");
        double j = 3.1;
        System.out.println("method3()即將結束");
        return j;
    }
}

知識點擴充:

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

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

3. 局部變量表,顧名思義,想必不用解釋大家應該明白它的作用了吧。就是用來存儲方法中的局部變量(包括在方法中聲明的非靜態(tài)變量以及函數形參)。對于基本數據類型的變量,則直接存儲它的值,對于引用類型的變量,則存的是指向對象的引用。局部變量表的大小在編譯器就可以確定其大小了,因此在程序執(zhí)行期間局部變量表的大小是不會改變的。

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

以上就是java虛擬機中棧的運行知識點總結的詳細內容,更多關于java虛擬機中棧的運行原理的資料請關注腳本之家其它相關文章!

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

標簽:安慶 洛陽 長春 清遠 吉林 岳陽 怒江 泉州

巨人網絡通訊聲明:本文標題《java虛擬機中棧的運行知識點總結》,本文關鍵詞  java,虛擬,機中,棧,的,運行,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《java虛擬機中棧的運行知識點總結》相關的同類信息!
  • 本頁收集關于java虛擬機中棧的運行知識點總結的相關信息資訊供網民參考!
  • 推薦文章
    香格里拉县| 资兴市| 蒙自县| 将乐县| 栖霞市| 高安市| 阿城市| 河曲县| 东乡| 宁津县| 阜新市| 奎屯市| 黄石市| 星座| 凤凰县| 房山区| 赤壁市| 阿瓦提县| 长海县| 弥渡县| 西吉县| 石林| 依安县| 高陵县| 安福县| 铜梁县| 西丰县| 大埔区| 五峰| 海口市| 吉水县| 沭阳县| 虎林市| 乌兰县| 张家界市| 利辛县| 株洲市| 九龙县| 西青区| 固阳县| 开原市|