[问题] 关于物件参考内存位置问题

楼主: tas72732002 (葱头)   2015-05-11 23:45:16
请问各位,
最近在实作上碰到一个问题, 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吗?
谢谢
作者: Frozenmouse (*冰之鼠*)   2015-05-11 23:58:00
autoboxing;你的a已经是另一个东西了
作者: pttworld (批踢踢世界)   2015-05-12 00:25:00
= new Integer(1000); 障眼法吓不倒我的
作者: cha122977 (CHA)   2015-05-12 00:59:00
因为你让a去refer 1000,这件事和b已经没关系了
作者: ssccg (23)   2015-05-12 02:53:00
换成任何物件,a = new Obj(); b = a; a = c; 结果a都不会跟b是reference同样东西啊reference type的 = 都是改reference,b是参照a的位址,那你不觉得a也是参照1000的位址,语意才是统一的吗?
作者: PttTime   2015-05-12 22:18:00
这题就算是primitive type也是一样的结果

Links booklink

Contact Us: admin [ a t ] ucptt.com