天天看點

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

概述

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

一、強引用

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

二、軟引用

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

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

三、弱引用

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

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

四、虛引用