在Java中,Reference
是一個類,它是垃圾收集器管理對象引用的重要工具。Reference
對象主要用來作為軟引用、弱引用和幻象引用的載體。
SoftReference
類實現的引用類型,它可以讓對象在內存不足時被垃圾收集器回收。當JVM內存緊張時,垃圾收集器會考慮清理那些僅有軟引用的對象,以此來釋放內存資源。如果這次清理還沒有足夠的內存,JVM將會拋出內存溢出異常。在JDK 1.2版之后提供了SoftReference類來實現軟引用。WeakReference
類實現的引用類型,它比軟引用更弱,被弱引用關聯的對象只能生存到下一次垃圾收集發生之前。當垃圾收集器工作時,無論當前內存是否足夠,都會回收掉只被弱引用關聯的對象。在JDK 1.2版之后提供了WeakReference類來實現弱引用。PhantomReference
類實現的引用類型,它是最弱的一種引用關系。一個對象是否有虛引用的存在,完全不會對其生存時間構成影響,也無法通過虛引用來取得一個對象實例。虛引用必須和引用隊列(ReferenceQueue
)聯合使用,其主要作用是跟蹤對象被垃圾收集的活動。在JDK 1.2版之后提供了PhantomReference類來實現虛引用。總的來說,Reference
類在Java中主要用于實現不同類型的引用,幫助開發者更精細地管理內存和資源。