jvm是执行Java程序的容器。空间很大,需要划分不同的区域,不同的功能使用不同的特点的区域完成,
分为 栈内存,堆内存,方法区,本地方法区,程序计数器
栈内存
用于执行方法,每个方法单独分配一段空间,称为栈帧,把给方法分配内存空间称为进栈和出栈,栈,特点为先进后出。
堆内存
用于存储数组,对象等数据量较大的数据,一般都是引用类型。这里的引用即指向该引用数据类型的地址也就是指针的使用。
方法区
用于存储类的字节码对象,存储常量,存储静态变量。
本地方法区
用于执行本地方法,C,C++方法就是本地方法。
程序计数器
用户控制程序的执行,控制程序执行那行代码