Java JVM内存区域
Java JVM内存区域
JVM 运行时数据区主要分为五部分:程序计数器、虚拟机栈、本地方法栈、堆、方法区。
程序计数器(PC Register)
当前线程执行的字节码行号指示器。各线程独立存储,是唯一不会发生 OutOfMemoryError 的区域。
虚拟机栈(JVM Stack)
每个线程独有,存储局部变量、操作数栈、方法返回地址等。每个方法调用对应一个栈帧(Stack Frame)。
本地方法栈(Native Method Stack)
为 JVM 调用本地方法(C/C++)服务。与虚拟机栈类似。
堆(Heap)
所有线程共享,存储对象实例和数组。是垃圾回收的主要区域。分为新生代、老年代。
方法区(Method Area)
所有线程共享,存储类信息(类的元数据)、常量、静态变量、JIT 编译后的代码。