Java中请问将一个对象赋值给另一个同类对象,这两个对象是否指向同一堆内存?

 我来答
能夕历乙
2020-02-24 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.3万
采纳率:31%
帮助的人:841万
展开全部
=
=,赋值就是把一个引用的地址指向了另外一个地址~然后它的值就是这个地址的值。
也就是说,如果你的对象都是同一地址,那么改变该地址的值,另外一个同地址的对象也会改变。
比如
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没有改变。
你的哥哥弟弟必须是两个地址不同的对象
Person
brotherA
=
new
Person();
Person
brotherB
=
new
Person();
这样的;
如果你一定要弟弟继承哥哥的属性,你可以在Person中实现implements
Cloneable接口,并且重写clone方法。然后
brotherB
=(Person)brotherA.clone();
这样brotherA和brotherB都一样且改变brotherB/A都不会影响另外一个。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式