JVM体系结构概览
GC作用域
常见的垃圾回收算法
引用计数(JVM不采用这种方式)
缺点:
- 每次对对象赋值时均要维护引用计数器,且计数器本身也有一定的消耗较难处理循环引用
优:没有产生内存碎片
缺:浪费空间,大对象复制耗时标记清除:先标记处要回收的对象,然后统一回收这些对象
标记整理
缺:浪费空间,即产生碎片,又耗时
谈谈你对GCRoots的理解?
什么是垃圾:简单的说就是内存中已经不再被使用到的空间如何判断一个对象是否可以被回收?
引用计数法:给对象添加一个引用计数器,每当有一个地方引用它,计数器值+1,每当有一个引用失效时,计数器值-1。任何时候计数器值为0的对象就是不可能再被使用的,那么这个对象就是可回收对象枚举根节点做可达性分析(根搜索路径):
基本思路就是通过一系列名为“GC Roots”的对象作为起始点,从这个被称为GC Roots的对象开始向下搜索,如果一个对象到GC Roots没有任何引用链相连时,则说明此对象不可用。也即给定一个集合的引用作为根出发,通过引用关系遍历对象图,能被遍历到的(可到达的)对象就被判定为存活,没有被遍历到的就自然被判定为死亡。



