Java虚拟机所管理的内存将会包括以下几个运行时数据区域:
运行时数据区域 | 英文 | 备注 | 是否线程共享 | 是否出现异常 |
---|---|---|---|---|
程序计数器 | Program Counter Register | 线程私有 | 无 | |
Java虚拟机栈 | JavaVirtual Machine Stacks | 局部变量表、操作数栈、动态链接、方法出口等 | 线程私有 | StackOverflowError异常、OutOfMemoryError异常 |
本地方法栈 | Native Method Stack | 为Native方法服务 | 线程私有 | StackOverflowError异常、OutOfMemoryError异常 |
Java堆 | Java Heap | 数组和对象实例 | 线程共享 | OutMemoryError异常 |
方法区 | Method Area(Non-Heap) | 已被虚拟机加载的类信息、常量、静态变量、即时编译期编译后的代码等 | 线程共享 | OutMemoryError异常 |