美文网首页
JVM如何执行的Java方法

JVM如何执行的Java方法

作者: 邹阿涛 | 来源:发表于2019-05-27 21:55 被阅读0次

    举例

    public class Test{
        public static void main(String[] args){

            Calculator cal = new Calculator();

            cal.calculate();

        }

    }

    另一个类:

    public Calculator{

        public void calculate(){

            int x = 0;

            int y = 1;

            Log.e("Calculate", "result is -->" + x/y);

    }


    流程:

    1,首先,JVM开始运行时,会将Test.java、Calcultor.class 编译成 Test.class文件

    2,程序开始运行时,会运行程序的入口方法   ----  main方法

    3,JVM首先为该程序创建 方法区、堆区、栈区等

    4,运行入口方法时,JVM会将Test.class装载进内存,然后在栈区中为main()方法创建一个栈帧

    5,然后开始执行 Calculator cal = new Calculator();

    6,首先会在方法区中装载Calculator.class,然后需要在堆区去创建一个Calculator实例对象,

    7,这个实例对象会保有着方法区中Calculator.class的引用,即知道自己是哪个class文件的

    8,然后调用cal.calculate();时,就会到Calculator类的方法表中进行方法的查找,如果找到了calculate()方法,就会在栈中,为calculate()方法创建一个栈帧,

    9,然后接下来就会运行cal.calculate(); 此时就会去Calculator.class的字节码文件中去查找calculate()的方法体,然后去执行该方法体

    相关文章

      网友评论

          本文标题:JVM如何执行的Java方法

          本文链接:https://www.haomeiwen.com/subject/wcoktctx.html