1 对象的结构 Header对象头 自身运行的数据(Mark Word) 哈希值GC分代年龄锁状态标志线程持有的锁偏向线程ID偏向时间戳 类型指针 对象指向元数据的指针 instanceData 实例数据Padding 2 对象的创建过程 new 类名根据new的参数在常量池中定位一个类的符号引用如果没有找到这个符号引用.则进行类的加载,解析和初始化JVM为对象分配内存–位于堆中将分配的内存初始化为零值(不包括对象头)调用对象的<init>方法 2.1.给对象分配内存 1.指针碰撞 2.空闲列表 2.2.内存分配线程安全问题 解决方案 本地线程分配缓冲线程同步