- 相關推薦
Java/Android引用類型及其使用分析
Java/Android中有四種引用類型,分別是:
Strong reference - 強引用
Soft Reference - 軟引用
Weak Reference - 弱引用
Phantom Reference - 虛引用
不同的引用類型有著不同的特性,同時也對應著不同的使用場景。
1.Strong reference - 強引用
實際編碼中最常見的一種引用類型。常見形式如:A a = new A();等。強引用本身存儲在棧內(nèi)存中,其存儲指向?qū)?nèi)存中對象的地址。一般情況下,當對內(nèi)存中的對象不再有任何強引用指向它時,垃圾回收機器開始考慮可能要對此內(nèi)存進行的垃圾回收。如當進行編碼:a = null,此時,剛剛在堆中分配地址并新建的a對象沒有其他的任何引用,當系統(tǒng)進行垃圾回收時,堆內(nèi)存將被垃圾回收。
SoftReference、WeakReference、PhantomReference都是類java.lang.ref.Reference的子類。Reference作為抽象基類,定義了其子類對象的基本操作。Reference子類都具有如下特點:
1.Reference子類不能無參化直接創(chuàng)建,必須至少以強引用對象為構(gòu)造參數(shù),創(chuàng)建各自的子類對象;
2.因為1中以強引用對象為構(gòu)造參數(shù)創(chuàng)建對象,因此,使得原本強引用所指向的堆內(nèi)存中的對象將不再只與強引用本身直接關聯(lián),與Reference的子類對象的引用也有一定聯(lián)系。且此種聯(lián)系將可能影響到對象的垃圾回收。
根據(jù)不同的子類對象對其指示對象(強引用所指向的堆內(nèi)存中的對象)的垃圾回收不同的影響特點,分別形成了三個子類,即SoftReference、WeakReference和PhantomReference。
【Java/Android引用類型及其使用分析】相關文章:
詳解Java枚舉類型enum及其使用01-06
使用Java的枚舉類型的方法03-14
c語言引用類型和值類型05-01
c#引用類型和值類型04-11
Java自動裝箱與拆箱及其陷阱分析02-25
淺談Java中的弱引用05-05
c語言引用類型與值類型的區(qū)別詳解02-10
Java 變量類型02-28