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