依賴關系

強參考

看案例

參考為空 強制回收 不起作用
軟參考


沒有回收 記憶體充足 我們只能強制gc 情理之中的事情
但如果記憶體不足呢?
虛擬機限定5m大小運行
-Xms5m -Xmx5m -XX:+PrintGCDetails
2020版如果找不到的話

測驗

完美 在記憶體不足時被回收了
弱參考


軟弱參考的案例

WeakHashMap的使用


看jdk檔案的說明
當他的鍵不再被使用時 將會自動移除整個entry物件
說虛參考前要先說下參考佇列 因為虛參考必須搭配參考佇列
參考佇列
在物件回收前先保存在參考佇列中 說人話 一個存放物件的活人棺材
使用弱參考來舉例

可以看到 第一次佇列沒有元素 但gc后佇列有了一個參考物件
虛參考
與上面用法類似 只是做一個系統通知的作用

總結
再觸發垃圾回識訓制的前提下
強參考 死都不回收 oom例外 宇宙毀滅也不回收
軟參考 有記憶體就留著 沒記憶體就回收 -----我有錢就收留你 沒錢就滾蛋
弱參考 不管如何都會被回收
虛參考 同上 但必須配合參考佇列 只要起一個死亡前通知的作用
參考佇列 活人棺材
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/257126.html
標籤:其他
下一篇:【Android studio】布局檔案中控制元件id不能在MainActivity檔案中呼叫(Kotlinx報錯)
