一个对象创建时, 如果开启了偏向锁(默认开启),那么对象创建后,markword值为0x05即最后3位101,这时它的Thread,epoch,age都为0 偏向锁默认是延迟的,不会在程序启动时立即生效,如果想避免延迟,可以加VM参数-xx:BiaseLockingStartupDelay=0来禁用延迟 如果没有开启偏向锁,那么对象创建后,markword值为0x01即最后3位位001,这时它的hashcode,age,都为0,第一次用到hashcode时才会赋值 相关文章: