方法区
用于储存虚拟机加载的类,常量,静态变量等数据。
堆
存放对象的实例,所有对象和数组都在堆上分配,是jvm所管理的内存中最大的一块区域。
栈
虚拟机栈,java执行方法的内存模型。存储局部变量表,操作数栈,动态链接,方法出口等信息。
本地方法栈
和虚拟机栈类似,不过本地方法栈是native关键字修饰的(底层为C),虚拟机栈是虚拟机执行的java方法。
程序计数器
jvm中最小的一块区域,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。