Java語言對對象引用的4種方式

對於大部分Java對象而言,程序裏會有一個引用變量引用該對象,這是最常見的引用方式.除了這之外,在java.lang.ref包下面給我們提供了3個類:SoftReference、PhantomReference和WeakRerence,他們分別代表了系統對象的3種引用方式:軟引用、弱引用、虛引用;下面我們就來看看java中4種對象的引用方式

1.強引用(StrongReference)

強引用是java中最常見的一種引用方式,當一個程序創建一個對象,並把這個對象賦給一個引用變量,程序通過該引用變量操作實際的對象.當一個對象被一個或一個以上的引用變量所引用時,它處於可達狀態,不可能被系統垃圾回收機制回收。

2.軟引用(SoftReference)

軟引用需要通過SoftReference類來實現,當一個對象只有軟引用時,它有可能被垃圾回收機制回收。對於只有軟引用的對象而言,當系統內存空間足夠時,它不會被系統回收,程序也可使用該對象;當系統內存空間不足時,系統可能會回收它。軟引用通常用於對內存比較敏感的程序中。

3.弱引用(WeakReference)

弱引用通過WeakReference類實現,弱引用和軟引用很像,但弱引用的引用級別更低。對於只有弱引用的對象而言,當系統垃圾回收機制運行時,不管系統內存是否足夠,總會回收該對象所佔用的內存。當然,並不是說當一個對象只有弱引用時,它就會立即被回收——正如那些失去引用的對象一樣,必須等到系統垃圾回收機制運行時纔會被回收。

4.虛引用(PhantomReference)

虛引用通過PhantomReference類實現,虛引用完全類似於沒有引用。虛引用對對象本身沒有太大影響,對象甚至感覺不到虛引用的存在。如果一個對象只有一個虛引用時,那麼它和沒有引用的效果大致相同。虛引用主要用於跟蹤對象被垃圾回收的狀態,虛引用不能單獨使用,虛引用必須和引用隊列聯合使用。

上面三個引用類都包含了一個get方法,用於獲取他們所引用的對象

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章