这9道面试题,给你答案都不一定能看明白,但面试必问,建议看完
1. synchronized的实现原理以及锁优化? synchronized的实现原理 synchronized作用于「方法」或者「代码块」,保证被修饰的代码在同一时间只能被一个线程访问。 synchronized修饰代码块时,JVM采用「monitorenter、monitorexit」两个指令来实现同步 synchronized修饰同步方法时,JVM采用「ACC_SYNCHRONIZED」标记符来实现同步 monitorenter、monitorexit或者ACC_SYNCHRONIZED都是「基于Monitor实现」的 实例对象里有对象头,对象头里面有Mark Word,Mark Word指针指向了「monitor」 Monitor其实是一种「同步工具」,也可以说是一种「同步机制」。 在Java虚拟机(HotSpot)中,Monitor是由「ObjectMonitor实现」的。ObjectMonitor体现出Monitor的工作原理~ ObjectMonitor() { _header = NULL; _count = 0; // 记录线程获取锁的次数 ...


