JVM内存结构

发布时间 2023-05-25 14:42:07作者: 程序员_YHB

JVM内存结构由五部分组成:

:java堆是所有线程共享的一块内存,几乎所有的对象实例和数组都要在堆中分配内存,因此该区域也经常发生垃圾回收操作。

方法区:存放已被加载的类信息。比如:常量、静态变量等。

虚拟机栈:线程私有的,每个方法执行时都会创建一个栈帧,用来存储局部变量、操作数、动态链接以及方法返回等信息。当线程请求的栈深度超出了虚拟机允许的最大深度就会抛出StackOverFlowError错误。

本地方法栈:线程私有的。保存的是native方法的信息,当JVM创建的线程执行native方法时,JVM不会在虚拟机栈中创建栈帧,而是简单的动态链接并直接调用该方法。

程序计数器:线程私有的。是一块很小的内存,用来记录当前线程执行的行号,也就是记录当前线程执行到哪一行代码。