强软弱虚四种
我们经常用的 new就是强引用,只要这个引用还存在,那么此对象,就不会被垃圾回收。
而软引用,则是当系统没有内存了,需要垃圾回收了,就会清理掉这部分对象。
而弱引用,则更进一步,只要我开始GC,不管我内存是否充足,你就必须被回收掉(如果一个对象有弱引用之外,还有一个强引用指向,那么他不会被回收)。
最后是虚引用,它无法单独使用,需要配合队列,虚引用主要是用来跟踪对象被垃圾回收的状态。当队列使用完毕将要销毁,我们就会判断是否存在虚引用,存在的话,就会去触发finalize方法,你可以理解成这个对象的临终遗言。