[問題] 關於物件參考記憶體位置問題

作者: 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