运行时数据区域 | 线程私有(随用户线程的启动和结束而建立和销毁)或所有线程共享(随虚拟机进程的启动而存在) | 抛出的异常 | 备注 |
---|---|---|---|
程序计数器(Program Counter Register) | 线程私有 | 唯一不抛出 OutOfMemoryError 异常的区域 | |
虚拟机栈(VM Stack) | 线程私有 | 会抛出 *Error、OutOfMemoryError | |
本地方法栈(Native Method Stack) | 线程私有 | 会抛出 *Error、OutOfMemoryError | |
堆(Heap) | 所有线程共享 | 会抛出 OutOfMemoryError | 通过 -Xmx 和 -Xms 设置堆大小 |
方法区(Method Area) | 所有线程共享 | 会抛出 OutOfMemoryError | 运行时常量池(Runtime Constant Pool)是方法区的一部分,受到方法区内存的限制。 |
直接内存(Direct Memory) | 所有线程共享 | 会抛出 OutOfMemoryError | 本机直接内存 |
相关文章
- JDK1.8-Java虚拟机运行时数据区域和HotSpot虚拟机的内存模型
- 深入理解java:1.3.1 JVM内存区域的划分(运行时数据区)
- [二]Java虚拟机 jvm内存结构 运行时数据内存 class文件与jvm内存结构的映射 jvm数据类型 虚拟机栈 方法区 堆 含义
- JDK1.8-Java虚拟机运行时数据区域和HotSpot虚拟机的内存模型
- java虚拟机运行时数据区域及对象的探秘
- Java虚拟机内存区域堆(heap)的管理
- java JVM的内存区域(运行时数据区域)
- 你必须了解的java内存管理机制(一)-运行时数据区
- Java虚拟机内存区域堆(heap)的管理
- Java虚拟机内存区域堆(heap)的管理