【3】内存回收

什么样的对象要回收?

当然是死掉的对象,那么,怎么判断是死掉的对象?有几种方法:

1.引用计数法

对象有一个引用计数器,保存指向它的引用。当计数器为0的时候,就没有引用指向它,那么就可以被回收。

弊端:AB互相持有对方的引用,那么AB永远不会被回收,造成内存空间的浪费。

2.可达性分析

GC Roots对象,从这些对象出发,向下搜索,走过的路径成为引用链,当一个对象到GC Roots没有任何引用链链接的时候,那么,这个对象就可以被回收。

GC Roots对象包括:

虚拟机栈中的对象

本地方法栈中的对象

方法区中常量引用的对象

方法区中静态变量引用的对象

垃圾回收算法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容