首先我们知道VM中栈内存和程序计数器随线程创建和消亡,java虚拟机的垃圾回收机制主要对应的时堆内存中的对象实例。
1.引用计数算法
给对象实例添加一个引用计数器,当这个对象被一个地方引用就+1,引用失效就-1.当引用计数器为0的时候就表示该对象不被引用了。
缺点:无法解决对象互相调用的问题。
2.可达性分析算法
通过一系列GC Roots 作为根节点,若从GC Roots的引用链不可达一个对象,则这个对象可回收。
感觉这个就是为了针对解决对象互相调用的问题。
本文介绍了Java虚拟机中两种主要的垃圾回收算法:引用计数算法和可达性分析算法。引用计数算法简单直接,但无法解决对象间循环引用的问题。可达性分析算法则通过追踪从GC Roots开始的对象引用链来确定对象是否可达,从而决定其是否可以被回收。
首先我们知道VM中栈内存和程序计数器随线程创建和消亡,java虚拟机的垃圾回收机制主要对应的时堆内存中的对象实例。
1.引用计数算法
给对象实例添加一个引用计数器,当这个对象被一个地方引用就+1,引用失效就-1.当引用计数器为0的时候就表示该对象不被引用了。
缺点:无法解决对象互相调用的问题。
2.可达性分析算法
通过一系列GC Roots 作为根节点,若从GC Roots的引用链不可达一个对象,则这个对象可回收。
感觉这个就是为了针对解决对象互相调用的问题。
1052

被折叠的 条评论
为什么被折叠?