Java 对对象的引用?

Java 对对象的引用?,java,object,reference,Java,Object,Reference,我有一个对象的数组列表。 我用如下方式“检索”其中一个对象: MyObjectClass myObject = myArrayList.get(34); 如果我随后对myObject进行修改,例如: myObject.someMember = 97; 它只是对数组列表中的对象或实际对象的本地副本执行此操作吗?也就是说,myObject变量是副本还是数组列表中对象的引用?在Java中,引用对象的名称始终具有引用语义。Containerget函数习惯性地返回容器持有的相同引用 如果函数想要返回本

我有一个对象的数组列表。 我用如下方式“检索”其中一个对象:

MyObjectClass myObject = myArrayList.get(34);
如果我随后对myObject进行修改,例如:

myObject.someMember = 97;

它只是对数组列表中的对象或实际对象的本地副本执行此操作吗?也就是说,myObject变量是副本还是数组列表中对象的引用?

在Java中,引用对象的名称始终具有引用语义。Container
get
函数习惯性地返回容器持有的相同引用

如果函数想要返回本地副本,或者您想要本地副本,则可以使用
new
来完成

MyObjectClass myObject = new MyObjectClass( myArrayList.get(34) );
它只是对对象的本地副本执行,还是对实际对象执行 在数组列表中?也就是说,myObject变量是副本还是副本 它是对数组列表中对象的引用吗


是,它将对ArrayList中的对象状态进行更改。myObject和arraylist中的项都是对存储在其他位置的对象的引用


ArrayList不包含对象,只包含对对象的引用(就像对对象的引用一样)。在Java中,对象永远不会存储在其他对象中,尽管有时这样想很方便。

我添加了一个标记并回答了Java的问题,但现在我看到C#也有一个
ArrayList
类。如有必要,请更改标记,并在每个问题中始终包含语言标记。@Quilliom如果没有语言标记,您将无法获得副本。感谢您的回复。他们清楚地回答了我的问题。