我们知道对象引用变量保存表示访问对象的方式的位。
它不保存对象本身,但保存诸如指针或地址之类的东西。
我正在阅读《Head-First Java》(第 2 版)一书,书中写道(第 3 章第 54 页):
在 Java 中我们并不真正知道什么是
在引用变量内。我们的确是
知道无论它是什么,它
代表一个且唯一的一个对象。
并且 JVM 知道如何使用
获取对象的引用。 -
我想问一下:
- 对象引用变量保存指针、地址还是什么?
- JVM 如何解释它?
引用内部的内容完全由 JVM 决定。
在最简单的情况下,它只是一个指针(即地址)。在更复杂的情况下,VM 可能会根据情况使用不同的表示 - 例如,您可能想阅读有关“HotSpot 中的压缩 oops” http://wikis.sun.com/display/HotSpotInternals/CompressedOops了解 HotSpot VM 在作为 64 位 VM 运行时如何避免某些(但不是全部)位置的引用大小加倍。
重要的是你不应该知道也不关心。就您作为程序员而言,它只是一组不透明的位 - 它的唯一目的是让您访问有问题的对象(或识别空引用)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)