在java中提供了4个级别的引用:强引用、软引用、弱引用、虚引用。只有强引用(FinalReference)类是包类可见,其他都是public,可以在应用程序中直接使用。

软引用适用于实现内存敏感的缓存,弱引用适用于实现无法防止其键(或值)被回收的规范化映射,而虚引用则适用于以某种比 Java 终结机制更灵活的方式调度 pre-mortem 清除操作。

参考:Java中的四种引用类型 Strong, Soft, Weak And Phantom