Java中对象之间的赋值问题

开篇第一句,还是那句老话: 先学会走,再想着跑.

首先我们假设: 有一个冰箱的类,并且冰箱类中有一个冰箱品牌的 (brand) 成员

变量.考虑到冰箱的英文很长,有很多人并不认识,以下我会使用 bingxiang 来叙述.

BingXing bingXing = new BingXIng();
bingXiang.brand="海尔";
BingXing bingXiang2=bingXiang; 

对于 bingXiang2 我并没有 new 生成一个新的对象,而是把 bingXiang 直接赋给

了它,这时候大家要注意,如果是引用类型的赋值的话,是把 bingxiang 的内存地

址赋给了bingXiang2, 也就是说这个时候他们两个引用了同一块内存地址.

System.out.println(bingXiang.brand);
System.out.println(bingXiang2.brand);

输出结果为:

海尔
海尔

现在我们修改 bingXiang2 的种类,再看输出结果

bingXiang.brand2="美的";
System.out.println(bingXiang.brand);
System.out.println(bingXiang2.brand);

输出结果为:

美的
美的

同过这两个例子我们可以很清楚的发现他们两个 确实引用了同一块内存地址.

接下来我在为大家画一张内存的分布图,让大家更好的理解:
在这里插入图片描述
我们直接把 bingXiang 赋值给了 bingXiang2 所以两个对象中存储着相同的地

址,都是58. 从图中可以清楚的看出两个对象引用了同一块内存地址.

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值