JAVA引用類型

強引用

強引用是最廣泛的引用,java垃圾回收機制不會回收強引用的對象。它的實現方式以下:java

Object object = new Object();

只有當object這個對象使用完畢,失去引用後纔可能會被回收。可是若是object是一個全局變量,那麼只能經過object=null;強制使該對象失去引用,不然除非程序結束,該對象不會被回收。spa

軟引用

 當使用軟引用時,除非出現內存不足,不然不會觸發回收機制。它的實現方式以下:線程

Object object = new Object();
SoftReference<Object> soft = new SoftReference<Object>(object);

弱引用

 當使用弱引用時,每次內存回收線程運行時,該對象都會被回收。它的實現方式以下:code

Object object = new Object();
WeakReference<Object> weakReference = new WeakReference<Object>(object);

虛引用

當使用虛引用時,在任什麼時候刻該引用都有可能會被回收,至關於未被引用。虛引用主要用於跟蹤對象被垃圾回收的活動。 當回收線程運行準備回收虛引用的對象時,會將該對象放入對應的引用隊列中。經過監控這個引用隊列,能夠在對象被回收前進行一些處理。虛引用必須與ReferenceQueue一塊兒使用。它的實現方式以下:對象

ReferenceQueue<Object> queue = new ReferenceQueue<>();
Object object = new Object();
PhantomReference<Object> phantomReference = new PhantomReference<>(object,queue);
相關文章
相關標籤/搜索