我有時會認爲如果oldObject != newObject
那麼對象已經發生了變化 - 這在大多數情況下似乎是一個公平的假設,但它確實是一個錯誤的假設?獲得完全相同的對象引用兩次的機率是多少
總之,下列代碼在什麼情況下會打印「相同!」?我知道這確實是遠程可能的,因爲對象引用基本上是對象的內存地址(或者可能在某個JVM中)。但它有多可能?在實際發生之前,我們是在談論數十年的運行時間嗎?
新增
我道歉 - 請假設oldO
是某種形式的weak
參考,不被收集停止。可能是Weak
,因爲代碼(現在)建議,或者引用存儲在某個數據庫或某個文件中。
如果你可以記下第一個對象的地址,然後丟棄它,那麼這個新對象可能位於同一個地址......我想這可能發生在任何時候。 – Ridcully
「那麼對象發生了變化」我相信你的意思是這個「已經被銷燬,並且一個新的代替它」。 – Alan
道歉 - 我的意思是(像@Ridcully所建議的那樣)'oldO'不會阻止對象被釋放。 – OldCurmudgeon