启动java程序,先加载指定的main方法的class文件到方法区,然后通过验证、准备、解析、初始化等阶段,通过字节码执行引擎执行字节码指令,每执行到一个需要使用的类时,就会去重复加载、验证、准备、解析、初始化等阶段,程序计数器用来记录线程执行到指令的位置,java虚拟机栈用来存放运行到的方法以及方法内的局部变量,方法运行完毕,出栈,堆内存用来存放实例化出来的对象。