作者tas72732002 (葱头)
看板java
标题[问题] 关於物件参考记忆体位置问题
时间Mon May 11 23:45:16 2015
请问各位,
最近在实作上碰到一个问题, code如下
Integer a = new Integer(900);
Integer b = a;
a = 1000;
System.out.println(b);
想请问 b不是参照a的记忆体位址吗, 为什麽当a=1000时,
b还是900呢 ? Integer b = a; 不是代表 a传记忆体位置给b吗?
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.34.181.227
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1431359118.A.A04.html
1F:推 Frozenmouse: autoboxing;你的a已经是另一个东西了 05/11 23:58
2F:推 pttworld: = new Integer(1000); 障眼法吓不倒我的 05/12 00:25
3F:→ cha122977: 因为你让a去refer 1000,这件事和b已经没关系了 05/12 00:59
4F:→ ssccg: 换成任何物件,a = new Obj(); b = a; a = c; 结果a都不会 05/12 02:53
5F:→ ssccg: 跟b是reference同样东西啊 05/12 02:55
6F:→ ssccg: reference type的 = 都是改reference,b是参照a的位址,那 05/12 02:59
7F:→ ssccg: 你不觉得a也是参照1000的位址,语意才是统一的吗? 05/12 02:59
8F:推 PttTime: 这题就算是primitive type也是一样的结果 05/12 22:18