jvm学习笔记 java对象的创建对象内存布局对象头实例数据对齐填充 java对象的创建 没有定位到 定位到 通过 new指令 检查指令参数能否 在常量池中定位到类 类的符号引用 类加载 检查是否被加载,解析和初始化 为新生对象分配内存 将内存初始化为零 设置对象头 对象内存布局 分为3个区域:对象头,实例数据,对齐填充 对象头 包括两部分信息 一:存储对象自身的运行时数据(哈希码、GC分代年龄,锁状态标志、线程持有的帧、偏向线程ID、偏向时间戳等) 二:类型指针(即对象指向它的类元数据的指针),虚拟机通过这个指针来确定这个对象是哪个类的实例;如果对象是一个数组,在对象头中还必须有一块用于记录数组长度的数据 实例数据 是对象真正存储的有效信息,也是在程序代码中所定义的的各种类型的的字段。(父类继承的数据,子类定义的数据) 对齐填充