线程私有的
- 虚拟机栈:每个方法在执行时,会生成一个栈帧。栈帧中存放着方法执行过程中的一些信息,包括局部变量表、操作数栈、方法出口
- 本地方法栈:和虚拟机栈类似,不过这里存放的方法都是native修饰的,调用的是底层C++写的方法
- 程序计数器:记录线程下一次执行代码的行数,占很小的内存,也是唯一一个没有OOM异常的区域
线程共享的
- 方法区:存放类的元数据信息,静态变量,常量。具体实现方式1.7永久代(堆中),1.8元空间
- 堆:存放对象。细分为新生代、老年代(1:2比例)。新生代细分为伊甸园区、from区、to区(8:1:1比例)