Java 当我从静态ArrayList抓取一个对象并更改其参数时会发生什么?

Java 当我从静态ArrayList抓取一个对象并更改其参数时会发生什么?,java,android,arraylist,static,Java,Android,Arraylist,Static,我有一个静态ArrayList,我希望能够从我的应用程序中的任何活动访问它。当我最终开始做这件事时,我会这样做: Profile profile = Globals.profiles.get(selected); 通常我理解,当我从ArrayList中检索和对象并对其进行更改时,我正在更改ArrayList中的对象。这是我想要的行为,但我想知道如果ArrayList是静态的,它是否仍然成立。例如,如果我: profile.setNewName("Mike"); 是否仅更改了从静态ArrayL

我有一个静态
ArrayList
,我希望能够从我的应用程序中的任何活动访问它。当我最终开始做这件事时,我会这样做:

Profile profile = Globals.profiles.get(selected);
通常我理解,当我从
ArrayList
中检索和对象并对其进行更改时,我正在更改
ArrayList
中的对象。这是我想要的行为,但我想知道如果
ArrayList
是静态的,它是否仍然成立。例如,如果我:

profile.setNewName("Mike");
是否仅更改了从静态
ArrayList
派生的本地对象的名称,或者
ArrayList
中的对象也已更新?正如我所说,当
ArrayList
不是静态的时,这是预期的行为。

静态意味着成员与类关联,而不是与类的具体实例关联。 在您的例子中,这意味着ArrayList是Globals类的成员


回答您的问题:由于您正在处理对象引用,因此直接更新(静态)ArrayList中的对象。

您将获得与更新ArrayList的非静态实例相同的行为


我想你需要研究一下静态在Java中意味着什么

你在Java引用中检查过“静态”意味着什么吗?据我所知,它意味着创建的任何
全局
对象都只存在一个
ArrayList
实例。我认为,在C++中,这些对象也存储在不同的内存部分(我不确定这是不是java的情况),而不是本地定义的对象,所以我在这里犹豫。