首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android WeakReference GC 行為差異:System.gc() 非立即回收

     編輯:程式設計綜合問答

Java SE 與 Android 執行相同弱引用代碼,輸出不同(Java:hello→null,Android:hello→hello)。

原因

System.gc() **僅是建議** JVM/ART 進行垃圾回收,**不保證立即執行**。Android ART 虛擬機為了流暢度,可能延遲或跳過本次 GC,導致弱引用對象暫時存活。

驗證

在循環中大量分配內存後再調用 System.gc(),通常能觸發回收觀察到 null。

結論:不可依賴 System.gc() 即時回收,弱引用適用於快取等可接受隨時失效場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved