【发布时间】:2012-01-16 03:02:15
【问题描述】:
简单的问题,Java 中的列表是按值还是按引用保存对象?如果我将一个对象放在一个列表中,然后更改它的一个值,那么列表中的那个是否会有更新的值?
【问题讨论】:
-
一个对象就是它自己。在赋值或传递给方法时,从不隐式复制/克隆/复制。
简单的问题,Java 中的列表是按值还是按引用保存对象?如果我将一个对象放在一个列表中,然后更改它的一个值,那么列表中的那个是否会有更新的值?
【问题讨论】:
Java 中的列表是按值还是按引用保存对象?
List 是一个包含对象引用的有序集合。
如果我将一个对象放在一个列表中,然后更改它的一个值,那么列表中的那个是否会具有更新后的值?
您只能更改/更新 可变 对象。您不能通过引用更新不可变(例如List<String>)对象。
【讨论】:
是的,它们是通过引用存储的。如果要检索值,请通过实现 Cloneable 接口克隆对象并实现自己的克隆方法。
【讨论】:
Java 中的所有对象都是通过引用来帮助的。列表以引用方式保存。其中的对象是通过引用保存的。因此,如果您稍后更改值,它将显示更新的值。
【讨论】:
显然,通过引用,就像任何 Java 对象的自定义一样,除非您有意克隆该对象,并将副本放入列表中。
【讨论】:
用户定义的数据类型总是通过引用传递,如果你在你的代码中定义了一个列表,其中包含一些类的变量,它们是通过引用存储的
【讨论】: