- 程序计数器
线程私有区域,用来标识当前线程执行到哪一行代码,CPU切换线程时使用
- Java虚拟机栈
线程私有区域,线程中的每个方法被执行的时候会生成一个帧栈(stackframe),用于存储局部变量表,操作数栈,动态链接,方法出口等信息
Exception:
StackOverflowError
OutOfMemoryError
- 本地方法栈
类似Java虚拟机栈,服务于Native方法
Exception:
StackOverflowError
OutOfMemoryError
- Java堆
所有线程共享,最大的一块,存放对象的实例
Exception:
OutOfMemoryError
- 方法区
所有线程共享区域,用来存放Class信息,静态变量,常量(例如编译器产生的常量池),编译后的代码等信息
Exception:
OutOfMemoryError
- 运行时常量池
方法去的一部分
Exception:
OutOfMemoryError
- 直接内存
NIO中直接操作堆外内存
Exception:
OutOfMemoryError