JAVA中当锁的是类时,锁会存在哪里?

已知:锁会存在被锁资源的对象头中,不同级别的锁会存储不同的内容,通过这些数据来判断该资源是否有线程抢到了锁。
那当Synchronized锁的是class时,这些数据该存在哪里呢?每个对象都存一份同一的数据?还是在方法区的Class中?亦或者堆中的一块独特区域?
百度了一下没找到这方面的答案,求大神解答!

阅读 3.4k
2 个回答

方法区;确切的说 JDK8 以后在元空间。

JVM虚拟机里,对象在堆内存中的存储布局可以划分为三个部分:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题