synchronized是调用操作系统内核态做同步,JVM只是针对这个原语根据线程和临界区的各种情况做了优化,也就是偏向锁,轻量级锁 锁膨胀 重量级锁  竞争失败一方自旋  自旋期间如果依然没能获得锁则直接挂起线程(JDK1.6)
ReentrantLock则是通过同步器AQS,在完成synchronized的主要功能需求的同时更多的是使用CAS操作来进行对资源临界区的锁定(底层使用sun.misc.unsafe调用硬件级CAS)
再一个 synchronized不会被ReentrantLock完全代替
我觉着这可能是他想让你答的,你开始答得只是功能上的区别。可能他会觉得深度不够吧