JAVA虚拟机为每个对象和类都关联一个锁,而且还会维护这个锁的引用计数。请问锁和对象(或者类)是怎么关联的,引用计数存放在JVM内存的哪个位置?谢谢!

解决方案 »

  1.   

    翻阅了一下<深入java虚拟机>,没有对此问题细节方面的阐述,我认为类锁的引用计数应该存放在方法区,对象锁引用计数存放在堆内存。
    或者你查找一下虚拟机规范看看呢
      

  2.   

    谢谢指点,JVM规范也没提到,坐等高手解决!
      

  3.   

    像在Hotspot vm的实现中,每个对象有两个机器字大小的头,里面包含了锁、gc、hashcode等信息,所以对锁的处理就是对象头中锁状态信息的处理了。
      

  4.   

    8个字节可以包含那么多的信息?类的监视器相关信息在class文件中有格式定义吗?
      

  5.   

    看到了<深入理解java虚拟机>一书有相关描述,Mark word
      

  6.   

    这已经不是jvm规范该管的事儿了,jvm规范只管该表现出什么样的行为,怎么实现,jvm实现者按自己需求来