• 技术文章 >java >java基础

    java虚拟机中栈的运行原理

    小妮浅浅小妮浅浅2021-08-09 10:38:16原创3781

    运行原理

    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虚拟机中栈的运行原理,希望对大家有所帮助。更多Java学习指路:Java基础

    本教程操作环境:windows7系统、java10版,DELL G3电脑。

    专题推荐:java虚拟机 栈
    品易云
    上一篇:java伪泛型的介绍 下一篇:java操作数栈的介绍

    相关文章推荐

    • java动态代理如何使用• java动态如何生成代理类• java注解的本质探究• java中@Override注解是什么• javascript字符串的语法介绍• javascript中null和undefined的区别• javascript如何动态加载js文件• javascript全局变量的使用注意• javascript访问不同对象的速度比较• javascript事件委托是什么• javascript迭代器是什么• java伪泛型的介绍

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网