JVM(Java Virtual Machine,Java 虚拟机)是 Java 代码运行的核心,它负责 内存管理、类加载、字节码执行、垃圾回收(GC)和 JIT 编译。理解 JVM 有助于优化 Java 应用的性能,提高调试和排错能力。
内存管理
JVM 在运行时会将内存划分成不同的区域,每个区域有不同的作用:
注:图片来自于网络
-
方法区(Metaspace):存储类元数据(方法、字段、常量池等)。
-
堆(Heap):存储对象实例,GC 主要管理的区域,分为 新生代(Eden、S0、S1) 和 老年代。
-
虚拟机栈(Stack):存储方法调用的局部变量、操作数栈、方法返回地址。
-
本地方法栈(Native Stack):用于执行 JNI(Java Native Interface)方法。
-
程序计数器(PC Register):记录当前执行的字节码指令地址。
🌟 实战案例:栈溢出
public class StackOverflowDemo {
public static void recursiveMethod() {