本文从 JVM 规范出发,系统拆解运行时数据区(程序计数器、虚拟机栈、本地方法栈、堆、方法区/元空间、直接内存)的职责边界与 OOM 表现,并给出容器化场景下的参数模板。随后沿着 new 指令追踪对象从字节码、TLAB 分配、对象头 Mark Word 到对齐填充的完整内存布局,讲清指针压缩的 32G 分界线与逃逸分析、标量替换、栈上分配的判定链。最后深入类加载五阶段、被动引用经典案例、三层类加载器与双亲委派的源码逻辑及其被打破的三种场景,配合自定义类加载器实现热加载与类隔离,并总结六类 OutOfMemoryError 的排查套路。