synchronized方法发生异常

被synchronized关键字修饰的方法内部如果发生异常、那么synchronized会不会释放
对象锁啊、如果释放那么java是如何知道要释放锁的、是不是jvm有个监控机制啊、求解答?

会释放,具体你可以看看深入Java虚拟机这本书