導航:首頁 > 編程語言 > java弱引用強引用

java弱引用強引用

發布時間:2025-09-01 04:53:37

A. 誰能解釋下JAVA中的強引用、弱引用、軟引用、虛引用,盡量通俗點,謝謝!!

1.強引用
本章前文介紹的引用實際上都是強引用,這是使用最普遍的引用。如果一個對象具有強引用,那就類似於必不可少的生活用品,垃圾回收器絕不會回收它。當內存空 間不足,Java虛擬機寧願拋出OutOfMemoryError錯誤,使程序異常終止,也不會靠隨意回收具有強引用的對象來解決內存不足問題。

2.軟引用(SoftReference)

如果一個對象只具有軟引用,那就類似於可有可物的生活用品。如果內存空間足夠,垃圾回收器就不會回收它,如果內存空間不足了,就會回收這些對象的內存。只要垃圾回收器沒有回收它,該對象就可以被程序使用。軟引用可用來實現內存敏感的高速緩存。
軟引用可以和一個引用隊列(ReferenceQueue)聯合使用,如果軟引用所引用的對象被垃圾回收,Java虛擬機就會把這個軟引用加入到與之關聯的引用隊列中。

3.弱引用(WeakReference)
如果一個對象只具有弱引用,那就類似於可有可物的生活用品。弱引用與軟引用的區別在於:只具有弱引用的對象擁有更短暫的生命周期。在垃圾回收器線程掃描它 所管轄的內存區域的過程中,一旦發現了只具有弱引用的對象,不管當前內存空間足夠與否,都會回收它的內存。不過,由於垃圾回收器是一個優先順序很低的線程, 因此不一定會很快發現那些只具有弱引用的對象。
弱引用可以和一個引用隊列(ReferenceQueue)聯合使用,如果弱引用所引用的對象被垃圾回收,Java虛擬機就會把這個弱引用加入到與之關聯的引用隊列中。

4.虛引用(PhantomReference)
"虛引用"顧名思義,就是形同虛設,與其他幾種引用都不同,虛引用並不會決定對象的生命周期。如果一個對象僅持有虛引用,那麼它就和沒有任何引用一樣,在任何時候都可能被垃圾回收。
虛引用主要用來跟蹤對象被垃圾回收的活動。虛引用與軟引用和弱引用的一個區別在於:虛引用必須和引用隊列(ReferenceQueue)聯合使用。當垃 圾回收器准備回收一個對象時,如果發現它還有虛引用,就會在回收對象的內存之前,把這個虛引用加入到與之關聯的引用隊列中。程序可以通過判斷引用隊列中是 否已經加入了虛引用,來了解

被引用的對象是否將要被垃圾回收。程序如果發現某個虛引用已經被加入到引用隊列,那麼就可以在所引用的對象的內存被回收之前採取必要的行動。

閱讀全文

與java弱引用強引用相關的資料

熱點內容
cad異常退出文件沒保存如何找到 瀏覽:506
全局配置文件json 瀏覽:951
wsimport本地wsdl文件 瀏覽:914
三星t550拆機教程 瀏覽:654
小米電腦沒網路怎麼辦 瀏覽:416
javaandroid面試題 瀏覽:891
u盤文件刪不掉格式化也不行 瀏覽:971
趣味編程是學些什麼東西 瀏覽:710
文件存放路徑怎麼寫 瀏覽:489
少兒機器人教育和編程哪個好 瀏覽:20
log4j日誌配置文件 瀏覽:966
編程燒腦怎麼辦 瀏覽:171
華為榮耀8手機版本下載不了 瀏覽:383
cad文件自毀怎麼改寫 瀏覽:571
6s恢復出廠設置換appid 瀏覽:690
蘋果解壓有密碼的文件怎麼打開文件 瀏覽:597
jsdivcss實現下拉列表選擇框 瀏覽:77
四歲多寶寶怎麼學編程 瀏覽:25
微信小程序循環次數 瀏覽:558
怎麼替換電腦文件夾內容 瀏覽:579

友情鏈接