1. 程式人生 > 其它 >Java強引用、軟引用、弱引用、虛引用使用

Java強引用、軟引用、弱引用、虛引用使用

概述

  在Java 1.2版本後,將引用概念進行擴充,分別為:強引用、軟引用、弱引用、虛引用,引用強度由強到弱。

一、強引用

  在程式中最常用的引用方式,如:Object obj = new Object()這種引用關聯,強引用只要引用關係存在,GC在回收時就不會回收引用的物件。

二、軟引用

  軟引用是描述一些物件有用,但是,是非必須的物件。軟引用引用的物件,在系統記憶體溢位前,GC進行第二次回收,當回收記憶體不足夠使用,才會丟擲記憶體溢位異常。

  在Java 1.2版本後,軟引用通過SoftReference類實現。

三、弱引用

  弱引用比軟引用強度更弱一點,描述一些非必須的物件,弱引用物件的生命週期在下一次的GC為止。弱引用物件無論無論系統記憶體是否充足,在GC時都會被回收。

  在Java 1.2版本後,弱引用通過WeakReference類實現。

四、虛引用

  虛引用是引用強度最弱的,虛引用的物件對物件的生命週期沒有任何影響,並且也法通過虛引用獲取物件。虛引用存在的唯一目的就是為了在GC回收前物件能收到系統回收的通知。

  在Java 1.2版本後,虛引用通過PhantomReference類實現。