5

在寻找有关如何在 Java 中实现引用变量的解释时,我遇到了这个问题: Java 中的引用变量内部是什么? Samuel_xL 有一条评论说指定供应商名称会是一个更好的问题。所以我的问题是如何在 Oracle JVM 中实现实例变量?它是指向地址的指针吗?我知道引用包含告诉 JVM 如何访问对象的位。但它的结构如何?

4

1 回答 1

1

据我所知,对象引用被存储为称为oop(普通对象指针) 或的类型narrowOop,具体取决于 JVM 是否使用压缩对象指针。Anoop是一个包含指向 Java 对象的指针的 C++ 类,anarrowOop是一个 32 位无符号整数,必须将其转换为正确的指针才能访问该对象;它们没有内部结构。你可以在这里找到声明:http: //hg.openjdk.java.net/jdk7/jdk7/hotspot/file/tip/src/share/vm/oops/oopsHierarchy.hpp

于 2013-08-08T20:24:56.933 回答