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

如何实现对Java对象的引用?

鲜于子琪
2023-03-14
问题内容

指针是仅用于实现Java参考变量还是实际上如何实现?以下是Java语言规范中的代码

4.3.1对象对象是类实例或数组。引用值(通常只是引用)是指向这些对象的指针,还有一个特殊的空引用,它不引用任何对象。

这是否意味着一直都是指针?


问题答案:

在现代JVM中,引用被实现为地址。

回到HotSpot的第一个版本(对于“经典VM”来说更早一些),引用被实现为句柄。那是指向指针的固定指针。对于任何特定对象,第一个指针永远不会更改,但是随着对象数据本身的移动,第二个指针也会更改。显然,这会影响使用性能,但是更容易编写GC。

在最新的JDK7版本中,支持“压缩的oops”。我相信BEA
JRockit已经有一段时间了。迁移到64位系统需要两倍的内存,因此需要地址带宽。“压缩的oop”利用地址的最低有效三位或四位始终为零的优势。将32位数据左移三位或四位,从而允许32或64
GB的堆,而不是4 GB。



 类似资料:
  • 我对类上的接口实现的理解是,接口类型引用实现接口的类的对象。 但是当我研究下面的代码片段在上面的代码中使用时… GetConnection(host,username,password)返回对对象的引用(类型为Connection),但DriverManager类中没有实现接口。谁能澄清我的这个疑问..?还是我漏掉了什么? 下面的代码段不能得到相同的东西 createStatement()应该返回

  • 本文向大家介绍Java中的对象和对象引用实例浅析,包括了Java中的对象和对象引用实例浅析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java中的对象和对象引用。分享给大家供大家参考。具体分析如下: 在Java中,有一组名词经常一起出现,它们就是“对象和对象引用”,很多朋友在初学Java的时候可能经常会混淆这2个概念,觉得它们是一回事,事实上则不然。今天我们就来一起了解一下对象和对象引

  • 本文向大家介绍如何实现对象克隆?相关面试题,主要包含被问及如何实现对象克隆?时的应答技巧和注意事项,需要的朋友参考一下 实现 Cloneable 接口并重写 Object 类中的 clone() 方法。 实现 Serializable 接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆。

  • 我试图获得对创建java的GoogleMap对象的引用,但我不知道如何获得这个引用。

  • 在我的ASP.NET程序中。我设置了一个受保护的列表。我在列表中添加了一个值。但它显示对象引用未设置为对象错误的实例 如何解决这个错误?

  • 问题内容: 我试图理解Java对象的hashCode(),并看到Java对象的hashCode()方法的以下代码: 因此,该类即:将隐式扩展该类。 主班: 正如隐式扩展类一样,因此它将具有类的方法。 我调用了on 对象,但由于尚未覆盖on ,因此从理论上讲它应该调用class的。 我的疑问是: 由于Object类没有任何实现,因此如何计算任何对象的哈希码? 就我而言,当我运行该程序时,它返回的哈希