jvm从大体上分为共享区和线程私有
线程共享:堆、方法区;
线程私有:本地方法栈、jvm栈、程序计数器
堆:存储对象实例,是虚拟机所管理的内存最大的一块
方法区:被虚拟机加载的类的信息,常量、静态变量还有就是程序编译后的代码和数据
jvm栈:每个方法被执行都会同时创建一个栈帧,栈帧用于存储局部变量、操作栈、动态链接、方法出口等信息
本地方法栈:本地方法和jvm栈类似,只不过jvm服务对象是Java方法,而本地方法是为虚拟机使用的native方法服务
程序计数器:记录当前线程所执行的字节码的行号指示器