在寻找有关如何在 Java 中实现引用变量的解释时,我遇到了这个问题: What's inside a reference variable in Java? Samuel_xL 在其中发表评论说,指定供应商名称将是一个更好的问题。 所以我的问题是如何在 Oracle JVM 中实现实例变量?它是指向地址的指针吗?我知道引用包含告诉 JVM 如何访问对象的位。 但它是如何构成的??
最佳答案
根据我能够确定的,对象引用被存储为称为 oop
(普通对象指针)或 narrowOop
的类型,这取决于 JVM 是否是否使用压缩对象指针。 oop
是一个 C++ 类,它包装了指向 Java 对象的指针,而 narrowOop
是一个 32 位无符号整数,必须按顺序将其转换为适当的指针访问对象;它们没有内部结构。您可以在此处找到声明:http://hg.openjdk.java.net/jdk7/jdk7/hotspot/file/tip/src/share/vm/oops/oopsHierarchy.hpp
关于java - Oracle 的 JVM 中是如何实现引用的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18134642/