1,强引用 StrongReference
如果一个对象具有强引用,那么垃圾回收器绝对不会回收它,当内存不足时宁愿抛出 OOM
错误,使得程序异常停止。
Object object = new Object(); 即是一个强引用。
2,软引用 SoftReference
如果一个对象只具有软引用,那么垃圾回收器在内存充足的时候不会回收它,而在内存不足
时会回收这些对象。
String value = new String(“sy”);
SoftReference sfRefer = new SoftReference (value );
sfRefer .get();//可以获得引用对象值
SoftReference 引用对象非常适合实现内存敏感的缓存,例如加载图片的时候,bitmap缓存机制。
3,弱引用 WeakReference
如果一个对象只具有弱引用,那么垃圾回收器在扫描到该对象时,无论内存充足与否,都会
回收该对象的内存。
String value = new String(“sy”);
WeakReference weakRefer = new WeakReference(value );
System.gc();
weakRefer.get();//null
弱引用解决内存泄露问题
4虚引用 PhantomReference
没用过
网友评论