java - 数组中的元素是对对象的引用还是对自身的引用?

标签 java arrays reference

如果我有一个 AnObjects 数组并且我这样做:

AnObject oldObject = arrayOfObjects[validIndex];
arrayOfObjects[validIndex] = new AnObject(oldObject.getVariableForContruction);
oldObject.terminate();

arrayOfObjects[validIndex] 的新内容被终止,还是原始的 oldObject 被终止?

换句话说:oldObject 包含对 AnObject 的引用还是包含对 AnObject 引用的引用?

最佳答案

这段代码有点困惑。您的对象数组必须引用 AnObject

AnObject oldObject = arrayOfObjects[validIndex];

您在此处将该引用分配给 oldObject

arrayOfObjects[validIndex] = new AnObject(oldObject.getVariableForContruction);

现在您将 validIndex 中的数组引用设置为指向 AnObject 的新实例。它不再指向 oldObject

oldObject.terminate();

它是对堆上对象的引用。

oldObject 指的是堆上的一个实例;数组中的引用指向您在堆上创建的新实例。

如果 oldObject 被终止(无论那意味着什么),它对您创建的新实例来说并不重要。该数组仍然指向新实例。

关于java - 数组中的元素是对对象的引用还是对自身的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5771317/

相关文章:

java - 如何判断获取的Java ResultSet是否为空?

java - 带有桌面客户端的服务器端事件。即没有浏览器(java)

c - (C) 二维数组函数

c#如何在字节数组中连续查找字节数组?

javascript - 使用数组和 for 循环获取

c++ - 这两个功能没有合并为一个功能是有原因的吗?

c++ - 如何接受可修改和不可修改的参数?

java - 如何使 JTextArea 的末尾可编辑

java - 如何使用 saml 在我的 spring 应用程序中实现 sso?

c++ - 期望具有指针和引用混合的代码输出