对象在堆内存中分为三个部分,以HotSpot虚拟机举例对象头分为两个部分MarkWord用于存储对象自身的运行时数据 如HashCodegc分代年龄锁状态标志线程持有的锁偏向线程ID偏向时间戳这些等等数据的长度在32和64位虚拟机中分别为32 64 bit。然
首先创建对象可以通过如下的方法newclone反序列化对于普通Java对象的创建,要经过以下几个过程检查类型当Java虚拟机遇到一条字节码new指令时,首先将去检查这个指令的参数是否能在常量池中定位到 一个类的符号引用,并且检查这个符号引用代表的类是否已被加载