強引用(Strong Reference)/軟引用(Soft Reference)/弱引用(Weak Reference)/虛引用(Phantom Reference)

     強引用:強引用指的是代碼中普遍存在的,類似“Object obj = new Object()”這類的引用,只要強引用還在,垃圾回收器永遠不會回收被引用的對象。

     軟引用:軟引用是用來描述一些還有用但並非必要的對象。對於軟引用關聯着的對象,在系統將要發生內存溢出之前,將會把這些對象列入回收範圍之中進行第二次回收。如果這次回收還沒有足夠的內存,纔會拋出內存溢出的異常。JDK1.2之後,提供了SoftReference類來實現軟引用。可用於構建緩存。

     弱引用:弱引用也是用來描述非必須對象的,但它的強度比軟引用弱一點。被弱引用關聯的對象只能生存到下一次垃圾回收發生之前。當垃圾收集器工作時,無論當前內存是否足夠,都會回收掉只被弱引用關聯的對象。WeakReference類實現弱引用。由於垃圾收集器是一個優先級很低的進程,並不一定會很快發現那些只具有弱引用的對象。

     虛引用:虛引用也被稱爲幽靈引用或幻影引用,它是最弱的一種引用關係。一個對象是否有虛引用的存在,完全不會對其生存時間構成影響,也無法通過虛引用來取得一個對象實例。爲一個對象設置虛引用關聯的唯一目的就是在這個對象被垃圾回收器回收時接收到一個系統通知。PhantomReference類實現了虛引用。
發佈了36 篇原創文章 · 獲贊 3 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章