java虚拟机中栈的运行原理

运行原理

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
喜欢就支持一下吧
点赞6 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容