運行原理
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中文網其他相關文章!