java - ArrayList 对对象的引用

标签 java arraylist

我对 ArrayList 保存对象引用的含义有点困惑。有人可以给我一个关于如何在代码中显示的例子吗?另外,arraylist 是否可以有一个对其自身进行引用的元素?谢谢!

最佳答案

您必须开始区分变量、值和对象。

变量是容器。它们包含值。

值可以有两种类型:原始值和引用值。引用值是指向对象的指针。

对象是也有行为的数据结构。

所以在

Object var = new Object();

var 是一个变量。 new Object() 是一个新实例创建表达式,其计算结果为 Object 类型的值,该值是对 Object 类型的对象的引用。然后将该值分配给 var

然后您可以使用 var 调用方法

var.toString();

运行时环境将评估var,它生成一个引用值、检索引用的对象并调用该方法。您可以通过执行以下操作重新分配 var 中存储的值

var = someOtherValue;

现在 var 将保存一个新值。

ArrayList 在幕后使用数组。数组是一种特殊的对象,其中的元素(您可以将其视为字段)本身就是变量。

所以

Object[] arr = new Object[10];

是一个Object类型的数组,其中包含十个变量。这些变量包含Object类型的值。再次强调,这些值仅供引用。您可以评估它们,也可以重新分配它们。

arr[3].toString();
arr[7] = "maybe a string";
arr[9] = arr[9]; // possible, but makes no sense

关于java - ArrayList 对对象的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28423563/

相关文章:

java - Jsoup图像标签提取

java - Thymeleaf 包含带有自己的 Controller 的模板

java - finish返回到哪个方法?

java - 按对象属性对对象的 ArrayList 进行排序并组织它们

java - 获取 IndexOutOfBoundsException : -1 when no negative numbers are involved

java - 从数组列表中安全地删除数据

java - 何时使用 GlueList 而不是 ArrayList 或 LinkedList?

java - Hadoop HDFS 以编程方式写入操作

Java,使用参数列表进行构造函数调用?

java - 转换为ArrayList