分類:
Java中的四種引用類型分別是強引用、軟引用、弱引用和虛引用,
特點:
強引用(Strong Reference):強引用是最普通的引用類型,通過new關(guān)鍵字創(chuàng)建的對象默認就是強引用。當一個對象被強引用變量引用時,JVM就不會回收這個對象,即使在內(nèi)存不足時也不會回收,只有當強引用變量被賦值為null時,才會被JVM回收。
軟引用(Soft Reference):軟引用是一種比強引用更弱的引用類型。當一個對象只被軟引用變量引用時,在內(nèi)存不足時,JVM會根據(jù)當前堆內(nèi)存的使用情況決定是否回收這個對象。軟引用可以用來實現(xiàn)緩存,當內(nèi)存不足時,JVM會回收一些不常用的對象,從而保證程序不會因為內(nèi)存不足而崩潰。
弱引用(Weak Reference):弱引用是一種比軟引用更弱的引用類型。當一個對象只被弱引用變量引用時,JVM會在下一次垃圾回收時回收這個對象,不管當前內(nèi)存是否足夠。弱引用可以用來實現(xiàn)一些特殊的緩存策略,如虛擬機中的ThreadLocal類。
虛引用(Phantom Reference):虛引用是一種比弱引用更弱的引用類型。當一個對象只被虛引用變量引用時,JVM會在垃圾回收時將這個對象放入一個隊列中,如果這個對象沒有被任何強引用、軟引用或弱引用變量引用,則這個對象會被回收。虛引用主要用于跟蹤對象是否被垃圾回收器回收的情況,可以用于一些特殊的資源管理和清理任務(wù)。