1:引用计算法 用判断对象的是否被引用指向来确定是否应该回收对象,缺点在于两个对象互相引用的时候是不能被回收的
2:通过判断对象是否能直接到达GC roots对象来判断是否能回收。如果两个对象互相阴影,而又不可到达GCRoots也应该完成回收。
引用的分类:
强引用:就是在程序中普遍存在,类似new 关键字,只要引用还在就不会被回收对象
软引用:描述一些还有用并非必须的引用,在系统发生内存溢出之前会先回收软引用然后才会抛出内存溢出
弱引用:下一次垃圾收集的时候都会回收只被弱引用关联的对象
虚引用:设置虚引用的唯一目的是为了在回收时得到一个系统通知,对生存周期不会造成任何影响