Java 对对象的ArrayList引用
我对ArrayList持有对象引用的含义有点困惑。有人能给我一个例子,说明这是如何在代码中显示的吗?另外,arraylist是否可以有一个元素作为对自身的引用?谢谢 这意味着不再逐字节复制对象,而是在列表中添加对存储对象的内存位置的引用Java 对对象的ArrayList引用,java,arraylist,Java,Arraylist,我对ArrayList持有对象引用的含义有点困惑。有人能给我一个例子,说明这是如何在代码中显示的吗?另外,arraylist是否可以有一个元素作为对自身的引用?谢谢 这意味着不再逐字节复制对象,而是在列表中添加对存储对象的内存位置的引用 List<Object> objects = new ArrayList<Object>(); Object myObject = new Object(); objects.add(myObject); // objects conta
List<Object> objects = new ArrayList<Object>();
Object myObject = new Object();
objects.add(myObject);
// objects contains one reference to myObject
objects.get(0).modify();
// myObject modified
List objects=new ArrayList();
对象myObject=新对象();
对象。添加(myObject);
//对象包含对myObject的一个引用
objects.get(0.modify();
//肌体修饰
请注意,将复制基本值(
int
) 您必须开始区分变量、值和对象
变量是容器。它们包含值
值可以有两种类型:基本值和引用值。引用值是指向对象的指针
对象是也具有行为的数据结构
所以在
var
是一个变量new Object()
是一个新实例创建表达式,其计算结果为Object
类型的值,该值是对Object
类型的对象的引用。然后将该值分配给var
然后可以使用var
调用方法
var.toString();
运行时环境将计算var
,这将生成一个引用值,检索引用的对象,并调用该方法。您可以通过执行以下操作重新分配存储在var
中的值
var = someOtherValue;
现在var
将保存一个新值
ArrayList
在幕后使用数组。数组是一种特殊的对象,其中的元素(您可以将其视为字段)本身就是变量
所以
是一个类型为Object
的数组,其中包含十个变量。这些变量包含Object
类型的值。同样,这些值是引用。您可以评估它们,也可以重新分配它们
arr[3].toString();
arr[7] = "maybe a string";
arr[9] = arr[9]; // possible, but makes no sense
你一般都知道什么是参照物吗?我相信参照物是指某物的物体。。例如String hello=新字符串();hello是对字符串对象的引用。我说的对吗?Tom的问题很好,但我要说的是,在Java中,我们通常不会区分“对对象的引用”和“对象”。如果有人告诉我一个列表包含“对对象的引用”,我只是想提醒一下,如果对象在列表之外发生了更改,那么列表中的对象也会发生更改:它们是同一个对象。这是一个家庭作业问题吗?这是一个非常基本的问题。@swordhunter2000引用引用一个对象。所以如果你想调用
list.add(hello)然后String另一个String=list.get(0)
,然后hello
和另一个String
都将引用相同的String对象,因为它们共享相同的引用。这还表明列表不会复制add
方法传递的对象。它只存储其引用。如果您使用get(index)
访问它,它将返回该引用。
Object[] arr = new Object[10];
arr[3].toString();
arr[7] = "maybe a string";
arr[9] = arr[9]; // possible, but makes no sense