Java 与对象引用混淆
我正在准备Java认证,在本例中,我对对象引用感到困惑。 在这段代码中,我无法理解为什么当我们为ArrayList和arrays元素分配一个新对象时,它们不会受到影响Java 与对象引用混淆,java,object,arraylist,Java,Object,Arraylist,我正在准备Java认证,在本例中,我对对象引用感到困惑。 在这段代码中,我无法理解为什么当我们为ArrayList和arrays元素分配一个新对象时,它们不会受到影响 ArrayList<StringBuilder> myArrList = new ArrayList<StringBuilder>(); StringBuilder sb1 = new StringBuilder("Jan"); StringBuilder sb2 = new Str
ArrayList<StringBuilder> myArrList = new ArrayList<StringBuilder>();
StringBuilder sb1 = new StringBuilder("Jan");
StringBuilder sb2 = new StringBuilder("Feb");
myArrList.add(sb1);
myArrList.add(sb2);
StringBuilder[] array = myArrList.toArray(new StringBuilder[2]);
for(StringBuilder val : array) {
System.out.println(val);
}
StringBuilder sb3 = new StringBuilder("NNN");
sb2 = sb3;
for(StringBuilder val : array) {
System.out.println(val);
}
for(StringBuilder val : myArrList) {
System.out.println(val);
}
如果您能提供简单的解释,我将不胜感激。谢谢。参考文献是指针。将新值赋给变量包括使该指针指向另一个对象。因此,在开始时,您有一个包含两个元素的数组:
array[0] ---> Jan <--- sb1
array[1] ---> Feb <--- sb2
array[0]-->Jan-Feb-Jan-Feb NNN
然后您说sb2变量应该引用与sb3变量相同的对象:
array[0] ---> Jan <--- sb1
array[1] ---> Feb
sb3 --------> NNN <--- sb2
数组[0]-->1-2月
sb3------>NNN引用是指针。将新值赋给变量包括使该指针指向另一个对象。因此,在开始时,您有一个包含两个元素的数组:
array[0] ---> Jan <--- sb1
array[1] ---> Feb <--- sb2
array[0]-->Jan-Feb-Jan-Feb NNN
然后您说sb2变量应该引用与sb3变量相同的对象:
array[0] ---> Jan <--- sb1
array[1] ---> Feb
sb3 --------> NNN <--- sb2
数组[0]-->1-2月
sb3------>NNN阅读此阅读此