JAVA各种引用(Reference)的汇总

HardReference 强引用

一般的人一般的程序最常用的引用


SoftReference 软引用

除非JVM即将OutOfMemory,否则不会被GC回收。这个特性使得它特别适合设计对象Cache。对于Cache,我们希望被缓存的对象最好始终常驻内存,但是如果JVM内存吃紧,为了不发生OutOfMemoryError导致系统崩溃,必要的时候也允许JVM回收Cache的内存,待后续合适的时机再把数据重新Load到Cache中。这样可以系统设计得更具弹性。

WeakReference 弱引用

Debug、内存监视工具,等程序,Proxy类中。因为这类程序一般要求即要观察到对象,又不能影响该对象正常的GC过程

所指向的对象只要进行系统垃圾回收,不管内存使用情况如何,永远对其进行回收

PhantomReference 虚引用

虚引用一般没有实际意义,仅仅观察GC的活动状态

FinalReference


JNI Weak Reference

你可能感兴趣的:(Java)