Java的强软弱虚引用

189 阅读1分钟

1.强引用:只要强引用存在,垃圾回收器就不会回收。String a=“abc”,a就是字符串“abc”的强引用。

2.软引用:用于描述有用但非必须的对象。如果内存充足,就不会回收该引用;如果内存不足,就回收。

3.弱引用:同样是用于描述有用但非必须的对象。但这个引用一旦被回收器扫描到,不管内存够不够,就会被回收。

4.虚引用:对对象的生命周期完全没影响。主要用来跟踪被垃圾回收器回收后的活动。 还有一个特点就是;虚引用必须与一个引用队列联合使用。当垃圾回收器回收一个对象时,如果发现它还有虚引用,就会先将其加入到与之关联的引用队列中。