从Java中看只有 hashCode
和class
?(分别对应getClass()
,hashCode()
)
最近在看同步相关的内容,里面有说到每个对象都有对象头,对象头中有Mark Word
等信息,记录了 锁状态,GC标记对象分代年龄,如果是数组还有记录数组长度。
所以我想问下,对于JVM来说,一个Object对象有哪些信息呢?
从Java中看只有 hashCode
和class
?(分别对应getClass()
,hashCode()
)
最近在看同步相关的内容,里面有说到每个对象都有对象头,对象头中有Mark Word
等信息,记录了 锁状态,GC标记对象分代年龄,如果是数组还有记录数组长度。
所以我想问下,对于JVM来说,一个Object对象有哪些信息呢?
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
Java不会规定对象应该包含哪些元数据,这个是各个JVM实现时自己决定的。
我们只要了解平时能够“感知”到的就行了,比如
monitor
,其他的真的没必要去钻。当然如果你立志要写一个JVM实现那就另当别论了。