29 一个方法的执行过程

  1. 类的加载:编译好.java文件之后,执行.class文件。启动jvm进程,从classpath路径中找到.class文件,将类信息加载到方法区。
  2. 执行main方法。
  3. 第一条语句Student stu = new Student("JACK"); 此时方法区中没有student类的相关信息,所以加载student类,放到方法区。
  4. 加载完student类后,jvm在堆中为stu实例分配内存,调用构造函数初始化stu实例,此实例持有指向方法区中的stu类的类型信息的引用。
  5. 执行stu.say()时,jvm根据stu的引用找到stu对象,根据stu对象持有的引用定位到方法区中student类的类型信息的方法表,获得say的字节码地址。
  6. 执行say

    推荐阅读