當前位置:才華齋>計算機>java語言>

Java/Android引用型別及其使用分析

java語言 閱讀(1.06W)

  Java/Android中有四種引用型別,分別是:

Java/Android引用型別及其使用分析

Strong reference - 強引用

Soft Reference - 軟引用

Weak Reference - 弱引用

Phantom Reference - 虛引用

不同的引用型別有著不同的特性,同時也對應著不同的使用場景。

  ng reference - 強引用

實際編碼中最常見的一種引用型別。常見形式如:A a = new A();等。強引用本身儲存在棧記憶體中,其儲存指向對記憶體中物件的地址。一般情況下,當對記憶體中的物件不再有任何強引用指向它時,垃圾回收機器開始考慮可能要對此記憶體進行的垃圾回收。如當進行編碼:a = null,此時,剛剛在堆中分配地址並新建的`a物件沒有其他的任何引用,當系統進行垃圾回收時,堆記憶體將被垃圾回收。

SoftReference、WeakReference、PhantomReference都是類rence的子類。Reference作為抽象基類,定義了其子類物件的基本操作。Reference子類都具有如下特點:

rence子類不能無參化直接建立,必須至少以強引用物件為構造引數,建立各自的子類物件;

2.因為1中以強引用物件為構造引數建立物件,因此,使得原本強引用所指向的堆記憶體中的物件將不再只與強引用本身直接關聯,與Reference的子類物件的引用也有一定聯絡。且此種聯絡將可能影響到物件的垃圾回收。

根據不同的子類物件對其指示物件(強引用所指向的堆記憶體中的物件)的垃圾回收不同的影響特點,分別形成了三個子類,即SoftReference、WeakReference和PhantomReference。