作者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/m.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