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