一、引用級別
強引用(StrongReference) > 軟引用(SoftReference) > 弱引用(WeakReference) > 虛引用(PhantomReference)
二、引用區(qū)別
| 引用類型??????? | GC掃描時 回收該對象時機 | 聯(lián)合引用隊列使用 |
備注 |
|---|---|---|---|
強引用 |
永遠不會回收 | - | 使用最普遍的引用 |
軟引用 |
內(nèi)存不足時,才回收 | 可以 | 可用來實現(xiàn)內(nèi)存敏感的高速緩存。 |
弱引用 |
不管內(nèi)存是否足夠,都會回收 | 可以 | 比軟引用生命周期更短。GC線程優(yōu)先級很低,因此不一定會很快發(fā)現(xiàn)弱引用。 |
虛引用 |
在任何時候都可能回收 | 必須 | 形同虛設(shè),和沒有任何引用一樣,不會決定對象的生命周期。用來跟蹤對象被GC回收的活動。 |
引用和引用隊列(ReferenceQueue)聯(lián)合使用,當GC準備回收該對象時;就會在回收之前,把該引用加入到與之關(guān)聯(lián)的引用隊列中。