对象被判定为垃圾的标准:
没有被其他对象引用
判定对象是否为垃圾的算法:
引用计数算法:
(1)通过判断对象的引用数量来决定对象是否可被回收
(2)每个对象实例都有一个引用计数器,被引用则+1,完成引用则-1
(3)任何引用计数为0的对象实例可以被当作垃圾收集
优点:执行效率高,程序执行受影响较小
缺点:无法检测循环引用的情况,导致内存泄漏
可达性分析算法:通过判断对象的引用链是否可达来决定对象是否可以被回收
可以作为GC Root的对象:虚拟机栈中引用的对象和方法区中的常量引用的对象、方法区中的类静态属性引用的对象、本地方法栈JNI的引用对象、活跃线程的引用对象
谈谈了解的垃圾回收算法:
标记-清除算法
复制算法
标记-整理算法
分代收集算法
GC的分类:
Minor GC
FULL GC
年轻代/新生代:Eden区、两个Survivor区
老年代:标记-清除算法、标记-整理算法
Java:GC相关
最新推荐文章于 2024-06-16 21:11:21 发布