java对象和数组是存放在堆中的,那么这些instance的数据结构是什么呢? 对象头:对象头存放的是这个对象的一些元数据信息.例如每个对象都有哈希值,GC分代年龄,锁状态标志等,这些信息就是存放在对象头中. 第一部分markword,用于存储对象自身的运行时数据,如哈希码(HashCode).GC分代年龄.锁状态标志.线程持有的锁.偏向线程ID.偏向时间戳等. 另外一部分是klass,类型指针,虚拟机通过这个指针来确定这个对象是哪个类的实例. 实际数据: 对象真正存储的有效信息就是放在这里的,…