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