synchronized 底层原理详解:字节码、对象头与锁升级 | 极客日志