gpt4 book ai didi

java - Java 中的对象引用有多大,它究竟包含什么信息?

转载 作者:IT老高 更新时间:2023-10-28 20:38:25 24 4
gpt4 key购买 nike

作为一名程序员,我认为这些看起来像“地址为 1a234552 的 java.lang.Object”或类似于 s in

的东西
Object s = "hello";

这是正确的吗?因此所有引用都是固定大小的吗?

最佳答案

虽然在许多 VM 上,引用的大小是 native 指针大小(即 32 位 JVM 为 32 位,64 位 JVM 为 64 位),但这并不能保证 - 特别是 HotSpot 现在或很快就会这样做支持"Compressed Oops"这是 64 位 JVM 中的 32 位引用。 (这并不意味着 每个 引用都被压缩 - 阅读链接文章以获取更多信息,还有很多关于它的博客文章。)

在回应另一条评论时,请注意引用本身通常只是一种寻址对象本身的方式。无论是不是直接内存指针,它的目标都是获取对象的数据。这基本上就是真正重要的一切。如果有一些“备用”位(例如,它是一个 64 位引用,并且您不需要所有宽度来表示对象的位置),那么 VM 可以将该数据用于其他信息,例如其类型,这可能允许一些优化。 (有关详细信息,请参阅 Tom 的评论。)

对象本身包含类型信息(可能以对 Class 实例的引用的形式,或类似的形式 - 我不知道足够详细)以及其他必要的“东西” "在标题中,在您获取对象的用户数据之前。

关于java - Java 中的对象引用有多大,它究竟包含什么信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/981073/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com