强引用
创建一个对象并把这个对象赋给一个引用变量。
Object object =new Object();
String str ="hello"
强引用有引用变量指向时永远不会被垃圾回收,JVM宁愿抛出OutOfMemory错误也不会回收这种对象。
软引用
如果一个对象具有软引用,内存空间足够,垃圾回收器就不会回收它;
MyObject aRef = new MyObject();
SoftReference aSoftRef=new SoftReference(aRef);
此后,这个aRef对象成为了软引用对象。如果垃圾收集线程进行内存垃圾收集,并不会因为有一个SoftReference对该对象的引用而始终保留该对象。
弱引用
弱引用也是用来描述非必需对象的,当JVM进行垃圾回收时,无论内存是否充足,都会回收被弱引用关联的对象。JAVA用WeakReference实现弱引用
虚引用
虚引用也称为幻影引用:一个对象是都有虚引用的存在都不会对生存时间都构成影响,也无法通过虚引用来获取对一个对象的真实引用。
唯一的用处:能在对象被GC时收到系统通知,JAVA中用PhantomReference来实现虚引用。

-- 本文抄自互联网
网友评论