“每次加锁肯定是在一个方法调用中,而方法调用就是有栈帧入栈,如果是轻量级锁重入的话那么此时入栈的栈帧里面的 dhw 就是 null,否则就是锁对象的 markword。” 这句话,每次加锁肯定是在一个方法调用中是不是有问题?下面这种情况呢?虽然几乎没人会这么写 sychronized (object) { ...... sychronized (object) { ..... } ...... }