四种引用方式
1、强引用(StrongReference)
2、软引用(SoftReference)
3、弱引用(WeakReference)
4、虚引用(PhantomReference)
强引用(StrongReference)
1、只要某个对象有强引用与之关联,JVM必定不会回收这个对象
2、即使内存不足,JVM宁愿抛出OutOfMemory错误也不会回收这种对象
例:
软引用(SoftReference)
1、用来描述一些有用但并不是必需的对象
2、对于软引用关联着的对象,只有在内存不足的时候JVM才会回收该对象
3、很适合用来实现缓存:比如网页缓存、图片缓存等
例如:
弱引用(WeakReference)
1、弱引用是用来描述非必需对象的
2、当JVM进行垃圾回收时,无论内存是否充足,都会回收被弱引用关联的对象。
例如:
虚引用(PhantomReference)
1、不影响对象的生命周期
2、如果一个对象与虚引用关联,则跟没有引用与之关联一样
3、在任何时候都可能被垃圾回收器回收
例如:
对象的可达程度
强可达:无需引用直接可达
软可达:通过一个软引用可达
弱可达:通过一个弱引用可达
虚可达:通过一个虚引用可达
不可达:没有任何引用指向对象