在java语言规范(java se 8) 版本中17.1章节有这么一句话:"Each object in Java is associated with a monitor, which a thread can lock or unlock. Only one thread at a time may hold a lock on a monitor.Any other threads attempting to lock that monitor are blocked until they can obtain a lock on that monitor."这里是原文连接,翻译过来就是Java中每个对象与一个Monitor相关联,线程可以锁住或者解锁这个Monitor.同一时间只能有一个线程可以锁定某个对象Monitor.而尝试锁定该Monitor的所有其他线程将阻塞,直到它们可以在该Monitor上获得锁定为止.
回到你的问题,升级为重量级锁后java锁对象的对象头保存的就是Monitor对象的指针.这里给你看下OpenJDK的Monitor的结构和方法,objectMonitor.cpp链接objectMonitor.hpp链接