2011年11月2日 星期三

reference link

在Java 中都是用物件的連結,
例如:
Date a;
Date b=a;
則常a的值改變時,b也會跟著變,
此時, 用以下兩個指令:
(1) a=new Date(); 和
(2) a.setTime(new Date().getTime());
將會有不一樣的效果,
用前者, 則中斷了b 與 a 的連結, 原來, b 指向 a 的位址, 但是new 指令, 結束了 a 原來的位址, 而產生了一個新的位址(與本體), 因此, a, b 成為獨立的兩個變數.
進一步地探討, 如果:
a=b;
c=a;
那麼b-->a-->c 三個會連動, 但是如果,
a=b;
b=c;
則 a 將獨立, 而b,c 連動.

這一點在函數傳遞時也有影響,

a=null;
func(a); 在執行時, a 改變了, 外面的a 是不會變的, 但是如果
Date a;
func(a);
如果在函數中, 使用 a=b, 則連動就結束了,
但如果用a.setTime(...), 那函數結束後, a 的值也改了,
但如果用 b=a, 那a, b 就會連動,

有趣!!

沒有留言:

張貼留言