我们知道对象引用变量包含表示访问对象的方式的位。
它不保存对象本身,但它保存诸如指针或地址之类的东西。
我正在阅读 Head-First Java(第 2 版)这本书,书中写道(第 3 章,第 54 页)
In Java we don't really know what is inside a reference variable. We do know that whatever it is, it represents one and only one object. And the JVM knows how to use the reference to get to the object. -
我想问:
- 对象引用变量是否包含指针、地址或其他内容?
- JVM 如何解释它?
最佳答案
完全由 JVM 决定引用中的内容。
在最简单的情况下,它只是一个指针(即地址)。在更复杂的情况下,VM 可能会根据情况使用不同的表示 - 例如,您可能想阅读有关 "Compressed oops in HotSpot" 的论文了解 HotSpot VM 在作为 64 位 VM 运行时如何避免在某些(但不是全部)位置加倍引用大小。
重要的是你既不应该知道也不应该关心。就您作为程序员而言,它只是一组不透明的位 - 它的唯一目的是让您到达有问题的对象(或识别空引用)。
关于java - Java 中的引用变量里面有什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3447878/