Java強引用、軟引用、弱引用、虛引用使用
阿新 • • 發佈:2021-10-18
概述
在Java 1.2版本後,將引用概念進行擴充,分別為:強引用、軟引用、弱引用、虛引用,引用強度由強到弱。
一、強引用
在程式中最常用的引用方式,如:Object obj = new Object()這種引用關聯,強引用只要引用關係存在,GC在回收時就不會回收引用的物件。
二、軟引用
軟引用是描述一些物件有用,但是,是非必須的物件。軟引用引用的物件,在系統記憶體溢位前,GC進行第二次回收,當回收記憶體不足夠使用,才會丟擲記憶體溢位異常。
在Java 1.2版本後,軟引用通過SoftReference類實現。
三、弱引用
弱引用比軟引用強度更弱一點,描述一些非必須的物件,弱引用物件的生命週期在下一次的GC為止。弱引用物件無論無論系統記憶體是否充足,在GC時都會被回收。
在Java 1.2版本後,弱引用通過WeakReference類實現。
四、虛引用
虛引用是引用強度最弱的,虛引用的物件對物件的生命週期沒有任何影響,並且也法通過虛引用獲取物件。虛引用存在的唯一目的就是為了在GC回收前物件能收到系統回收的通知。
在Java 1.2版本後,虛引用通過PhantomReference類實現。