内存泄露原理

一、四大引用

强:直到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)]

你可能感兴趣的:(内存泄露原理)