什么是对象引用变量?

时间:2013-05-12 04:05:35

标签: java

java中的Object Reference变量是什么?

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

我很困惑。请解释一下。

5 个答案:

答案 0 :(得分:21)

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

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

答案 1 :(得分:8)

  

java中的Object Reference变量是什么?

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

  

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

可能是的,但可能没有。

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

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

Object o = "foo";

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