【JVM调优实战】05-对象的一生 📅 2026/7/19 0:14:32 对象的一生:创建、内存布局与访问定位本文是《JVM调优实战》专栏第 5 讲。在 Java 程序员眼中,new Object()只是一行代码;但在 JVM 眼中,这行代码背后是一套精密的协作流程:类加载检查、内存分配、零值初始化、对象头设置、构造方法执行。对象创建出来后,它在内存中长什么样?我们通过引用访问对象时,JVM 又是如何找到它的?这些问题看似底层,却和性能调优息息相关。比如,一个Long对象到底占多少字节?为什么 64 位 JVM 默认开启指针压缩?为什么用句柄访问比直接指针慢,却仍有场景在用?本章我们就来完整拆解"对象的一生"。对象的创建过程当你写下new Object()时,JVM 的执行流程大致如下:new 指令 │ ▼ 1. 类加载检查 ──→ 符号引用是否已加载、解析、初始化?没有则先执行类加载 │ ▼ 2. 分配内存 ──→ 在堆中划分出确定大小的内存块 │ ▼ 3. 零值初始化 ──→ 将分配的内存空间(不含对象头)初始化为零值 │ ▼ 4. 设置对象头 ──→ 设置 Mark Word(哈希码、GC 分代年龄、锁状态等)和类型指针 │ ▼ 5. 执行 init ──→ 执行构造方法,完成程序员可见的初始化1. 类加载检查虚拟机遇到