1.引用计数算法
给对象添加一个引用计数器,当对象增加一个引用时计数增加1,当引用失效的时候,计数减1。当引用计数为0的时候,对象就可以被回收
两个对象被循环引用的时候,引用计数永远不为0,导致无法对其进行回收
2.可达性分析算法
通过GC Roots作为起点进行搜索,能够到达对象的都是存活的,不可达的对象是可被回收的,
在Java中一般包含一下内容:
·虚拟机栈中引用的对象
·本地方法栈中引用的对象
·方法区中类静态属性引用的对象
·方法区中常量引用的对象
1.引用计数算法
给对象添加一个引用计数器,当对象增加一个引用时计数增加1,当引用失效的时候,计数减1。当引用计数为0的时候,对象就可以被回收
两个对象被循环引用的时候,引用计数永远不为0,导致无法对其进行回收
2.可达性分析算法
通过GC Roots作为起点进行搜索,能够到达对象的都是存活的,不可达的对象是可被回收的,
在Java中一般包含一下内容:
·虚拟机栈中引用的对象
·本地方法栈中引用的对象
·方法区中类静态属性引用的对象
·方法区中常量引用的对象