看板 java 關於我們 聯絡資訊
請問各位, 最近在實作上碰到一個問題, 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://www.ptt.cc/bbs/java/M.1431359118.A.A04.html
Frozenmouse: autoboxing;你的a已經是另一個東西了 05/11 23:58
pttworld: = new Integer(1000); 障眼法嚇不倒我的 05/12 00:25
cha122977: 因為你讓a去refer 1000,這件事和b已經沒關係了 05/12 00:59
ssccg: 換成任何物件,a = new Obj(); b = a; a = c; 結果a都不會 05/12 02:53
ssccg: 跟b是reference同樣東西啊 05/12 02:55
ssccg: reference type的 = 都是改reference,b是參照a的位址,那 05/12 02:59
ssccg: 你不覺得a也是參照1000的位址,語意才是統一的嗎? 05/12 02:59
PttTime: 這題就算是primitive type也是一樣的結果 05/12 22:18