JVM内存结构
运行时数据区域 JVM在运行Java程序的过程中会把管理的内存分成不同的数据区域 线程私有: 虚拟机栈 本地方法栈 程序计数器 线程共享: 堆 方法区(元空间) 直接内存 虚拟机栈 Java虚拟机栈是一个线程私有的内存区域,用于存储每个方法执行时的局部变量表、操作数栈、动态链接、方法返回地址。每个方法在执行时都会创建一个栈帧,当方法执行完毕后,对应的栈帧将会出栈销毁。 局部变量表主要存放编译器可知的各种数据类型(基本数据类型)和对象引用 操作数栈用于在方法执行过程中进行数据操作和计算。操作数栈采用栈的数据结构,用于存储方法执行过程中的局部变量、中间结果和操作数。 动态链接是指在方法调用过程中进行方法的查找和链接,实现方法的动态绑定。主要用于支持Java程序中多态性和动态方法调用 方法返回地址是指在方法调用过程中,用于记录方法返回的地址信息。当一个方法被调用时,JVM会为该方法创建一个新的栈帧,并将其推入虚拟机栈中。 ...