首頁  >  文章  >  Java  >  java虛擬機器中堆疊的運行原理實例分析

java虛擬機器中堆疊的運行原理實例分析

WBOY
WBOY轉載
2023-04-18 10:46:021005瀏覽

運行原理

1、不同執行緒所包含的堆疊幀是不允許存在相互引用的。

2、如果當前方法呼叫了其他方法,方法返回之際,當前棧幀會傳回此方法的執行結果給當前一個棧針,並且虛擬機會丟棄當前棧幀,使得前一個棧幀重新成為當前堆疊幀。

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()开始执行");
        method2();
        System.out.println("method1()执行结束");
    }
    public int method2(){
        System.out.println("method2()开始执行");
        int i = 100;
        int m = (int)method3();
        System.out.println("method2()即将结束");
        return i + m;
    }
    public double method3(){
        System.out.println("method3()开始执行");
        double j = 3.1;
        System.out.println("method3()即将结束");
        return j;
    }
}

以上是java虛擬機器中堆疊的運行原理實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除