Java SE 與 Android 執行相同弱引用代碼,輸出不同(Java:hello→null,Android:hello→hello)。
System.gc() **僅是建議** JVM/ART 進行垃圾回收,**不保證立即執行**。Android ART 虛擬機為了流暢度,可能延遲或跳過本次 GC,導致弱引用對象暫時存活。
在循環中大量分配內存後再調用 System.gc(),通常能觸發回收觀察到 null。
結論:不可依賴 System.gc() 即時回收,弱引用適用於快取等可接受隨時失效場景。