1. java运行时数据区
1.1 图解
1.2 组成部分说明
1.方法区
线程共享 方法区是逻辑上堆的一部分 所以他有个名字:非堆
运行时常量池、字段和方法数据,以及方法和构造函数的代码,包括类和实例初始化和接口初始化中使用 的特殊方法
如果方法区域中的内存无法满足分配请求,Java 虚拟机将抛出一个 OutOfMemoryError
2.堆
线程共享 堆是为所有类实例和数组分配内存的运行时数据区域 内存不足 OutOfMemoryError
3.java虚拟机栈
执行java方法的 线程私有的 StackOverflowError
4.本地方法栈
执行本地方法 线程私有 StackOverflowError
5.程序计数器
记录程序执行到的位置 线程私有