Sha*_*ala 1 java storage reference list data-structures
我有一个List
使用该方法添加到a的对象theList.add(theObj)
.
如果我现在对此对象进行更改theObj
,这些更改是否会始终反映在列表中存储的对象中?
如果是,这是否意味着List
在java存储中只有引用而不是它传递的对象的唯一副本?
Jon*_*eet 11
您不在列表中存储对象.您在列表中存储引用.
是的,如果您通过任何引用对对象进行更改,则该更改将是可见的,否则您将转到同一对象.
赋值,参数传递等也是如此:
StringBuilder builder = new StringBuilder();
StringBuilder builder2 = builder;
builder.append("foo");
System.out.println(builder2); // Prints foo
Run Code Online (Sandbox Code Playgroud)
这里的值builder
和builder2
是对同一个StringBuilder
对象的引用- 所以通过将一个字符串附加到对象中的数据builder
,您可以通过它获得相同的信息builder2
.