Java虚拟机所管理的内存,包含的运行时数据区域?

时间:2023-03-10 01:11:10
Java虚拟机所管理的内存,包含的运行时数据区域?
运行时数据区域 线程私有(随用户线程的启动和结束而建立和销毁)或所有线程共享(随虚拟机进程的启动而存在) 抛出的异常 备注
程序计数器(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 本机直接内存

图示:

Java虚拟机所管理的内存,包含的运行时数据区域?

参考:https://mp.weixin.qq.com/s/mehFhIR2ne3Tnl7RlBNuhA