开篇第一句,还是那句老话: 先学会走,再想着跑.
首先我们假设: 有一个冰箱的类,并且冰箱类中有一个冰箱品牌的 (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. 从图中可以清楚的看出两个对象引用了同一块内存地址.