运行原理
1、不同线程中所包含的栈帧是不允许存在相互引用的。
2、如果当前方法调用了其他方法,方法返回之际,当前栈帧会传回此方法的执行结果给当前一个栈针,并且虚拟机会丢弃当前栈帧,使得前一个栈帧重新成为当前栈帧。
3、Java方法有两种返回函数的方式。
一种是正常的函数返回,使用return指令;另一种是抛出异常。不管使用哪种方式,都会导致栈帧被弹出。
实例
publicclassStackFrameTest{ publicstaticvoidmain(String[]args){ StackFrameTeststackFrameTest=newStackFrameTest(); stackFrameTest.method1(); } publicvoidmethod1(){ System.out.println("method1()开始执行"); method2(); System.out.println("method1()执行结束"); } publicintmethod2(){ System.out.println("method2()开始执行"); inti=100; intm=(int)method3(); System.out.println("method2()即将结束"); returni+m; } publicdoublemethod3(){ System.out.println("method3()开始执行"); doublej=3.1; System.out.println("method3()即将结束"); returnj; } }
以上就是java虚拟机中栈的运行原理,希望对大家有所帮助。更多Java学习指路:Java基础
原文来自:https://www.py.cn© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容