jvm模型分为:堆、栈(线程)、本地方法栈、元空间、方法区(元空间)、程序计数器,具体分分布如下图所示
栈:当线程运行的时候会在栈中开辟一个空间进行(一个线程会开辟一个空间),指针指向堆中(堆中实际存储对象)
堆:存储对象地址
方法区:存储常量,静态变量,类信息
程序计数器:用于程序计数,具体字节码执行到哪步(结合javap -c)查看,
FILO先进后出(栈)
javap jdk自带运行指令
javap -c:对代码进行反汇编
javap -v:输出附加信息
jvm大体运行图
局部变量:存储方法的局部变量,如a=1等
操作数栈:对数据进行计算
动态链接:
方法出口:方法的返回
下面堆相关的后文jvmgc文章中会明细提供