什么是对象引用变量?

什么是java中的Object Reference变量?

引用变量是否包含对象的内存地址?

我很困惑。 请解释一下。

我不确定我是否能够正确回答这个问题,但……

  • Object是Class的一个实例,它存储在内存中的某些位置
  • 引用是用于描述指向Object所在的内存位置的指针。
  • 变量是一种可以访问应用程序中的内存位置的方法(其值为“变量”)。 虽然变量只能指向单个内存地址(如果它不为空),但它可能会在应用程序的生命周期内发生变化并指向不同的位置

什么是java中的Object Reference变量?

简单地说,它是一个变量,其类型是一个对象类型; 即某些类型是java.lang.Objectjava.lang.Object的子类型。

引用变量是否包含对象的内存地址?

可能是的,但可能没有。

它取决于JVM如何表示对象引用。 在大多数JVM中,使用内存地址或指针在后台表示对象引用。 但它也可以表示为数组的索引……或其他东西。 (实际上,我已经搞砸了一个实验性的JVM,其中一个对象引用实际上是一个指针数组的索引。)

关键是Java对象引用是一种抽象, 旨在 隐藏您的表示/实现细节。 实际的表示不应该与您有关……因为如果您使用纯Java编程并不重要。 你无法掌握纯Java中的实际内存地址……这是一件好事。 JVM(特别是垃圾收集器)可能会在不告诉您的情况下更改对象的实际内存地址。 如果应用程序可以获取并使用对象地址,则需要处理它,这是一个根本上难以解决的问题。

Object引用变量就像c中的指针一样,但不完全是指针。
它取决于JRE提供的一些JRE就像一个指针和一些其他JRE被视为指针的指针。
所以refernce variable just define a way to reach your object 。 Java是独立于平台的语言,因此内存管理在不同的设备中是不同的,因此难以提供到达对象的独特方式。

yes对象引用是保存真实对象的内存位置的变量

例如,在Java中,引用引用所有对象

Object o = "foo";

上面的例子对对象“foo”有一个引用o。