这段代码的输出结果是什么?为啥会这样
这段代码的输出结果是什么?为什么会这样?
如题
------解决方案--------------------
Vector是同步的 我就知道这些 和List不一样
------解决方案--------------------
这样对不对
------解决方案--------------------
在这里 v1和v3是同一个对象 改变v1相当于改变v3 因为v2里有v1 所以 改变v1和v3时v2也会变 但是改变v2不会影响v1和v3
------解决方案--------------------
最后一句不对,改变v2里面的v1会同时影响到v1,v2,v3
((Vector)v2.get(0)).add("3");
如题
import java.util.Vector;
public class test {
public static void main(String...args){
Vector v1=new Vector();
Vector v2=new Vector();
v1.add("1");
v2.add(v1);
Vector v3 = (Vector)v2.get(0);
v3.add("2");
System.out.println("v3:"+v3);
System.out.println("v2:"+v2);
}
}
Java
------解决方案--------------------
Vector是同步的 我就知道这些 和List不一样
------解决方案--------------------
Vector v1=new Vector();
Vector v2=new Vector();
v1.add("1");
v2.add(v1);
Vector v3 = (Vector)v2.get(0); //(Vector)v2.get(0)==v1 ,所以v3=v1
v3.add("2"); //v3.add("2") ,v1也add("2")了,所以v2也变了
System.out.println("v3:"+v3);
System.out.println("v2:"+v2);
这样对不对
------解决方案--------------------
在这里 v1和v3是同一个对象 改变v1相当于改变v3 因为v2里有v1 所以 改变v1和v3时v2也会变 但是改变v2不会影响v1和v3
------解决方案--------------------
最后一句不对,改变v2里面的v1会同时影响到v1,v2,v3
((Vector)v2.get(0)).add("3");