强引用:正常创建对象去引用
不可达时会正常进行GC
软引用:SoftReference
可以获取到所引用的对象
可以在内存中缓存数据比较大的内容,通过软引用去进行获取,可以避免使用较少、数据较大的内容较多的占据存储空间
弱引用:WeakReference
可以获取到所引用的对象
通过get方法获取对象后,就会通过GC释放内存(仅一次获取)
虚引用:PhantomReference
不可以获取到所引用的对象
主要用于管理堆外内存:在堆中通过对象的虚引用指向堆外内存,由GC线程去进行内存的释放