当前位置: 首页 > 面试题库 >

如何在Oracle JVM中实现引用?

薛英卫
2023-03-14
问题内容

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


问题答案:

根据我的判断,对象引用存储为称为oop(普通对象指针)或的类型narrowOop,具体取决于JVM是否使用压缩的对象指针。An
oop是一个包装指向Java对象的指针的C ++类,而a
narrowOop是一个32位无符号整数,必须将其转换为适当的指针才能访问该对象;他们没有内部结构。您可以在此处找到声明:http
:
//hg.openjdk.java.net/jdk7/jdk7/hotspot/file/tip/src/share/vm/oops/oopsHierarchy.hpp



 类似资料:
  • 在ddd中,实体可以引用同一聚合的实体或另一聚合根(但不能引用另一聚合内的实体)。 如何实施这样的参考? 实体的方法如何访问引用的聚合根? 实体允许对另一个聚合根做的方法是什么? 对于1.和2.,我的问题是,实体不应该访问存储库。此外,神奇的延迟加载机制并不总是可用的,我认为出于同样的原因应该避免。因此,当存储库加载聚合时,存储库是否应该解析其中每个实体的所有引用(以及所有引用的其他聚合)?或者“

  • 问题内容: 我在编写的程序中遇到接口问题。我想创建一个接口,该接口的方法之一可以接收/返回对自己对象类型的引用。就像这样: 我不能在“?”处使用“ I”,因为我不想返回对接口的引用,而是要返回对类的引用。我搜索后发现在Java中没有“自我引用”的方法,因此我不能仅用“?”代替。在示例中,“ self”关键字或类似的内容。实际上,我想出了一个解决方案 但这似乎确实是一种解决方法或类似方法。还有另一种

  • 本文向大家介绍如何在Java中使用lambda和方法引用实现IntToDoubleFunction,包括了如何在Java中使用lambda和方法引用实现IntToDoubleFunction的使用技巧和注意事项,需要的朋友参考一下 IntToDoubleFunction 是java.util.function包中的功能接口。该功能接口接受一个int值的参数并产生一个double值的结果。IntTo

  • 本文向大家介绍在Java中如何使用lambda和方法引用实现DoubleBinaryOperator?,包括了在Java中如何使用lambda和方法引用实现DoubleBinaryOperator?的使用技巧和注意事项,需要的朋友参考一下 DoubleBinaryOperator是中定义的函数接口java.util.function函数包裹。它接受两个double类型的参数作为输入,并生成另一个d

  • 问题内容: 当用户访问列表中可见的项目时,如何在底部显示进度栏。 我编写了一个代码,其中使用Web服务获取数据,现在我想填充部分记录,因为我的JSON中大约有 630条记录 。 这是我用来从JSON获取数据并填充到RecyclerView中的整个代码。 这是我的JSON的外观,但是真实的JSON包含600多个记录: 有人可以指导我在我的代码中进行更改的地方吗? 每当用户使用进度条滚动到底部时,我想