Java面试中经常被问到的问题

开课吧开课吧锤锤2021-02-22 17:59

        随着互联网的发展,越来越多的人开始从事互联网相关的工作,很多人在选择学习的时候,会选择Java方向,因为Java这种编程语言,是每个公司都需要的,因为岗位的需求,所以就业的时候岗位充足,不会面临,毕业就失业,那如何在相同水平的人中脱颖而出,那就需要一个好的面试表现,今天就为大家普及一份面试资料synchronized底层实现原理?

    答;

    synchronized(this)原理:涉及两条指令:monitorenter,monitorexit;再说同步方法,从同步方法反编译的结果来看,方法的同步并没有通过指令monitorenter和monitorexit来实现,相对于普通方法,其常量池中多了ACC_SYNCHRONIZED标示符。

    JVM就是根据该标示符来实现方法的同步的:当方法被调用时,调用指令将会检查方法的ACC_SYNCHRONIZED访问标志是否被设置,如果设置了,执行线程将先获取monitor,获取成功之后才能执行方法体,方法执行完后再释放monitor。在方法执行期间,其他任何线程都无法再获得同一个monitor对象。

    这个问题会接着追问:java对象头信息,偏向锁,轻量锁,重量级锁及其他们相互间转化。

    以上就是synchronized底层实现原理的详细解析,如果大家觉得这样学习比较慢,那么点击下方图片,免费获得一份Java面试详细资料包,一次性解决面试问题,何乐不为呢!

Java

点击图片领取资料包,更多Java面试资料尽在开课吧广场Java面试频道。

有用
分享