java 虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。
区域介绍方法区:线程间共享,用于存储已被虚拟机加载的类型信息、常量、静态变量、即时编译器编译后的代码缓存等数据。
虚拟机栈:线程私有,虚拟机栈指的是线程内存模型,每执行一个方法就会创建一个栈帧(用于存储局部变量表、操作数栈、动态连接、方法出口等信息)
本地方法栈:与虚拟机栈相似。区别是虚拟机栈为java方法服务,本地方法栈为虚拟机使用本地方法服务。
堆:用于存放所有对象实例及数组。是java垃圾收集器管理的内存区域。
程序计数器:程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。



