• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    java虚拟机中栈的运行知识点总结

    运行原理

    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;
        }
    }

    知识点扩充:

    1. Java栈也称为虚拟机栈,也就是我们常常所说的栈。 Java栈是Java方法执行的内存模型。

    2. Java栈中存放的是一个个的栈帧,每个栈帧对应一个被调用的方法,在栈帧中包括局部变量表(Local Variables)、操作数栈(Operand Stack)、指向当前方法所属的类的运行时常量池(运行时常量池的概念在方法区部分会谈到)的引用(Reference to runtime constant pool)、方法返回地址(Return Address)和一些额外的附加信息。 当线程执行一个方法时,就会随之创建一个对应的栈帧,并将建立的栈帧压栈。当方法执行完毕之后,便会将栈帧出栈。 因此对于方法没有存在回收资源一说 。

    3. 局部变量表,顾名思义,想必不用解释大家应该明白它的作用了吧。就是用来存储方法中的局部变量(包括在方法中声明的非静态变量以及函数形参)。对于基本数据类型的变量,则直接存储它的值,对于引用类型的变量,则存的是指向对象的引用。局部变量表的大小在编译器就可以确定其大小了,因此在程序执行期间局部变量表的大小是不会改变的。

    4. 操作数栈,想必学过数据结构中的栈的朋友想必对表达式求值问题不会陌生,栈最典型的一个应用就是用来对表达式求值。想想一个线程执行方法的过程中,实际上就是不断执行语句的过程,而归根到底就是进行计算的过程。因此可以这么说,程序中的所有计算过程都是在借助于操作数 。

    以上就是java虚拟机中栈的运行知识点总结的详细内容,更多关于java虚拟机中栈的运行原理的资料请关注脚本之家其它相关文章!

    您可能感兴趣的文章:
    • java虚拟机JVM类加载机制原理(面试必问)
    • vmware虚拟机安装deepin20最全详细过程
    • Java虚拟机类加载器之双亲委派机制模型案例
    • Python动态规划实现虚拟机部署的算法思想
    • 最新虚拟机VMware 14安装教程
    • Python使用oslo.vmware管理ESXI虚拟机的示例参考
    • Java虚拟机精选面试题20道
    • Java reservedcodecachesize虚拟机参数案例详解
    上一篇:Python语言规范之Pylint的详细用法
    下一篇:Python开发工具Pycharm的安装以及使用步骤总结
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    java虚拟机中栈的运行知识点总结 java,虚拟,机中,栈,的,运行,