java中可以将某个引用变量的值赋值给另外一个引用变量,

这种引用变量之间的赋值是对象引用的传递,而不是对象的复制。这句话怎么理解啊,,什么叫做对对象的复制啊?什么又叫做对象引用的传递啊... 这种引用变量之间的赋值是对象引用的传递,而不是对象的复制。
这句话怎么理解啊,,什么叫做对对象的复制啊?什么又叫做对象引用的传递啊
展开
 我来答
该用户非法用户
推荐于2017-09-13 · 超过15用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:28.4万
展开全部
首先生成对象的时候对象的内容被存储在内存中的,存储的位置会有段内存地址
而 当 A a = new A(); 的时候可以如下理解
new A() 在内存中保存该对象并返回存储位置的地址, A a = new A();执行的时候呢a的值
可以理解为a = 内存地址这样

那么在引用传递的时候比如 A b = a的时候,相当于 b = a的内存地址
所以无论对a还是b进行修改的话,实际上都是修改内存中由new A()生成的对象
而 a 和 b 其实都是对 new A()生成的对象的引用

对象的复制是指内存中实际存储两个对象,只不过第二个对象的所有之都与第一个对象相同,
相当于 A b = new A(),让后再把a 中的内容全部复制到b中,
这个时候修改 a 的时候 b的内容不会改变
ch605852232
2013-11-28
知道答主
回答量:3
采纳率:0%
帮助的人:3978
展开全部
引用的概念可以延伸到C语言中的指针实际上引用存储的就是一个对象的地址(不同虚拟机的机制不同 但是完全可以理解为存储的就是地址 这里不做深究 )
打个比方指针相当于一座房子的钥匙,而真正的内容则是这个房子 那么在java中 引用就相当于
钥匙 拿着钥匙自然可以进这座房子 显然房子就是所谓的对象 引用之间的赋值就是配了一把新钥匙的概念 注意此时的两把钥匙都可以操纵这个房子 但是房子显然只有一座 那么对应的 内存中的分配情况则是 两引用指向一个对象 引用的传递就是钥匙的复制
假设两把钥匙为 a,b 假如钥匙a操作房子的窗户将其改成绿色的 那么钥匙钥匙b查看房子的窗户颜色的时候显然也是绿色的 所以用传递后的引用改变对象属性时 所有指向这个对象的引用查看对象属性时 都会发现已经改变后的结果 希望你能理解!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱我所爱丶Lyb
2013-11-28 · TA获得超过408个赞
知道小有建树答主
回答量:390
采纳率:0%
帮助的人:307万
展开全部
对象的复制:在内存里面,又开辟出一个空间保存这个复制的对象,就是说两个一样的对象,各占一个空间.
对象的引用:就是本来这个对象占了一个空间,某个对象引用之后,指针指向这个本来已经存在的对象,而不是重新复制一份,再开辟一个空间..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式