Java中将一个对象赋值给另一个同类对象,这两个对象是否指向同一堆内存?
1个回答
展开全部
对象是引用类型的,所以如果你把一个对象赋值给另一个变量,它实际上只是把内存地址赋值了。
也就是说,如果你的对象都是同一地址,那么改变该地址的值,另外一个同地址的对象也会改变。
比如
List a = new ArrayList(); a.add("a");List b=a;b.add("b");System.out.println(a);//output:[a,b]
这里边的a、b就是同一地址;
但是有赋值的则不会如此:
String a="a";
String b=a;
b="b";
System.out.println(a);//output:a
这里边b的引用虽然指向了a但是后来的赋值让它指向了新的地址,改变的不是原来地址的值;所以a没有改变。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询