【问题标题】:Are object variables pointers in Java?Java中的对象变量是指针吗?
【发布时间】:2012-05-26 14:44:32
【问题描述】:

对象变量是指针吗?如果我声明一个对象变量,然后给它分配另一个对象,我有一个还是两个对象?

具体来说,我需要在 Android 中捕获一个位置对象并将其放在一边以与出现的下一个位置对象进行比较。

【问题讨论】:

  • 在 Java 中,术语是“引用”,而不是“指针”,尽管您可以将它们视为基本相同的东西。

标签: java android oop object


【解决方案1】:

你有一个对象,有两个引用。具体来说,

int[] a = {1, 2};
int[] b = a;
a[0] = 17;
System.out.println(b[0]); // 17

您需要显式克隆一个对象(如果它是Cloneable)或以其他方式复制其内容以创建一个非共享的新实例。

【讨论】:

  • 谢谢,我就是这么想的,但我想我曾经听说 java 没有指针,所以不确定它是如何工作的
  • 它没有指针,因为人们在 C 中理解它们 - 一方面没有指针算法。一切都透明地处理。您永远不需要取消引用引用。引用是安全的指针。
  • 我必须在几分钟内完成检查,它不会让我知道。我可以在这里问一个跟进还是我应该单独发布这个?我可以很容易地弄清楚这一点,但如果你知道......在 android 中当我收到一个位置对象,然后位置更新是同一个对象还是一个新对象?
  • 对不起,我回答了一个Java问题,我对Android平台一无所知:P
  • 对象被垃圾回收;如果无法再访问该对象,它将自动消失。程序员不需要采取任何行动。这意味着,如果您将一个对象放入一个局部变量中并且从不将其存储在其他任何地方,那么在您退出局部范围后的一段时间内它就会被遗忘。
猜你喜欢
  • 2021-08-05
  • 1970-01-01
  • 1970-01-01
  • 2013-07-26
  • 1970-01-01
  • 1970-01-01
  • 2021-12-12
  • 2020-08-17
  • 2021-06-19
相关资源
最近更新 更多