jvm包括:类装载子系统(类加载器)、运行数据区(jvm内存)、字节码执行引擎
jvm工作流程:程序运行时类装载子系统把class文件加载到运行数据区,然后字节码执行引擎去执行相应的字节码,根据字节码去调底层相应的汇编指令,cpu按照汇编指令去干活
1.1、线程每执行到一个方法jvm便可在栈中为该线程创建一个栈帧(存储空间),方法调用完清空这块空间
栈帧结构:
1、局部变量表:存方法的局部变量,局部变量表说到底也就是个存储空间,对基本数据类型,它存的是具体的值;对于引用数据类型,它存的是堆区对象的地址
2、操作数栈:相当于一个临时空间,存储将要用来计算、赋值的那些具体数据的(操作数),一般都是基本类型的数据。赋值时先把变量值放到到操作数栈,然后再取出给局部变量表中的变量;计算时先把值放到操作数栈,计算完再把值给局部变量