Java 具有四種強度不同的引用類型。
1、強引用
被強引用關(guān)聯(lián)的對象不會被回收。
使用 new 一個新對象的方式來創(chuàng)建強引用。
2、軟引用
被軟引用關(guān)聯(lián)的對象只有在內(nèi)存不夠的情況下才會被回收。
使用 SoftReference 類來創(chuàng)建軟引用。
3、弱引用被弱引用關(guān)聯(lián)的對象一定會被回收,也就是說它只能存活到下一次垃圾回收發(fā)生之前。使用 WeakReference 類來實現(xiàn)弱引用。
4、虛引用又稱為幽靈引用或者幻影引用。一個對象是否有虛引用的存在,完全不會對其生存時間構(gòu)成影響,也無法通過虛引用取得一個對象。為一個對象設(shè)置虛引用關(guān)聯(lián)的唯一目的就是能在這個對象被回收時收到一個系統(tǒng)通知。使用 PhantomReference 來實現(xiàn)虛引用。