java中的对象引用变量是什么?
引用变量是否保存对象的内存地址?
我很困惑。请解释一下。
我不确定我是否能优雅地正确回答这个问题,但是......
java中的对象引用变量是什么?
简单地说,它是一个类型为对象类型的变量;即某种类型,要么java.lang.Object
是java.lang.Object
.
引用变量是否保存对象的内存地址?
可能是,但也可能不是。
这取决于 JVM 如何表示对象引用。在大多数 JVM 中,对象引用在幕后使用内存地址或指针表示。但它也可以表示为数组的索引......或其他东西。(实际上,我已经搞砸了一个实验性的 JVM,其中对象引用实际上是指向指针数组的索引。)
关键是 Java 对象引用是一种抽象,旨在向您隐藏表示/实现细节。实际的表示不应该关心你......因为如果你用纯 Java 编程并不重要。您无法在纯 Java 中获取实际的内存地址……这是一件好事。JVM(特别是垃圾收集器)可能会在不告诉您的情况下更改对象的实际内存地址。如果一个应用程序可以获取和使用对象地址,它就需要处理它,这是一个根本性的难题。
对象引用变量就像 c 中的指针,但不完全是指针。
它依赖于 JRE 提供一些 JRE 就像指针一样对待,而其他一些 JRE 被视为指针指针。
所以refernce variable just define a way to reach your object
。Java 是独立于平台的语言,因此内存管理在不同的设备中是不同的,因此很难提供一种独特的方式来访问对象。
是 对象引用是保存真实对象内存位置的变量
在 Java 中,所有对象都被引用引用,例如
Object o = "foo";
上面的例子有一个对对象“foo”的引用,o。