内存泄露原理

一、四大引用

强:直到oom都不会回收

软:gc扫到后 不一定回收,内存不足

弱:gc扫到后就回收,与引用队列绑定使用(WeakReference、ReferenceQueue)

二、LeakCanery原理

三个列表:引用列表、观察列表、怀疑列表

初始状态:

[图片上传失败...(image-891a11-1644571631013)]

没泄露:引用队列不为空,移除观察列表

[图片上传失败...(image-ec468e-1644571631013)]

泄露了:引用队列为空

[图片上传失败...(image-13f9d8-1644571631013)]

LeakCanery原理:

[
image

内存泄露.mp4
14.9 MB](https://app.yinxiang.com/shard/s27/res/60b799b9-c8f8-49f1-ab5f-55873d1b3425/%E5%86%85%E5%AD%98%E6%B3%84%E9%9C%B2.mp4)

三、GcRoot、可达性分析

GCroot不可以回收

[图片上传失败...(image-bf3103-1644571631012)] [图片上传失败...(image-b1db73-1644571631013)]

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容