Java 什么是对象引用变量?

Java 什么是对象引用变量?,java,Java,java中的对象引用变量是什么 引用变量是否保存对象的内存地址 我很困惑。请解释。是对象引用是保存真实对象的内存位置的变量。在Java中,所有对象都通过引用引用 对象o=“foo” 上面的例子有一个对象“foo”的引用o 我不确定我是否有能力恰当地回答这个问题,但是 对象是类的实例,它存储在内存中的某个位置 引用用于描述指向对象所在内存位置的指针 变量是一种可以访问应用程序中该内存位置的方法(其值为“变量”)。虽然一个变量只能指向一个内存地址(如果它不为null),但在应用程序的整个生命周期中

java中的对象引用变量是什么

引用变量是否保存对象的内存地址


我很困惑。请解释。

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

在Java中,所有对象都通过引用引用

对象o=“foo”


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

我不确定我是否有能力恰当地回答这个问题,但是

  • 对象是类的实例,它存储在内存中的某个位置
  • 引用用于描述指向对象所在内存位置的指针
  • 变量是一种可以访问应用程序中该内存位置的方法(其值为“变量”)。虽然一个变量只能指向一个内存地址(如果它不为null),但在应用程序的整个生命周期中,它可能会改变并指向不同的位置
java中的对象引用变量是什么

简单地说,它是一个类型为对象类型的变量;i、 e.
java.lang.Object
java.lang.Object
的子类型

引用变量是否保存对象的内存地址

可能是的,但可能不是

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


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

对象引用变量与c中的指针类似,但并不完全是指针。
它依赖于JRE,提供一些像指针一样处理的JRE,以及一些像指针一样处理的其他JRE。

所以
reference变量只需定义一种到达对象的方法
。Java是独立于平台的语言,因此内存管理在不同的设备中是不同的,因此很难给出一种访问对象的独特方式

如果引用变量的类型是对象类型或它的子类,我们可以说s1是“String s1=new String(“String”);”中的一个对象,那么这段代码将在内存中创建两个对象s1和“String”的对象?1)严格来说不是。
s1
是一个变量
s1
包含对象引用,2)否,因为
s1
不是对象;见1)