Android内存泄漏知识点

94d43f8d45bfaab2335bbd4625995fc5.gif

和你一起终身学习,这里是程序员Android

经典好文推荐,通过阅读本文,您将收获以下知识点:

一、什么是内存泄漏?
二、Android中导致内存泄漏的主要几个点
三、Java虚拟机内存管理
四、Java内存几种分配策略?
五、垃圾收集器是如何判断对象是否可回收?
六、什么是内存抖动?
七、内存抖动产生的原因?
八、Android中4种引用
九、常见的导致内存泄漏的示例

下面我们就以上面几个知识点来进行逐一的分析:

一、什么是内存泄漏?

当一个对象已经不需要在使用了,本应该被回收,而另一个正在使用的对象持有它的引用,导致对象不能被回收。因为不能被及时回收的本该被回收的内存,就产生了内存泄漏。如果内存泄漏太多会导致程序没有办法申请内存,最后出现内存溢出的错误。

二、android中导致内存泄漏的主要几个点

android开发中经常出现的点,我有只有了解了,才能更好的避免。

  • 使用单例模式

  • 使用匿名内部类

  • 使用异步事件处理机制Handler

  • 使用静态变量

  • 资源未关闭

  • 设置监听

  • 使用AsyncTask

  • 使用Bitmap

上面就是我列出的几个常出现内存泄漏的几个点,下面我们将一一解读。

三、java虚拟机内存管理

d6a1dbd86c731144d6b6b9c73b07f45a.jpeg

java虚拟机内存分为虚拟机栈,本地方法栈,程序计数器,堆,方法区这几个模块,下面我们就来分析下各个模块。

(1).虚拟机栈

虚拟机栈主要的作用就是为执行java方法服务的,是Java方法执行的动态内存模型。会导致栈内存溢出(StackOverFlowError)

(2).本地方法栈

为执行native方法服务的,其他和虚拟机栈一样

(3).程序计数器<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员Android

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值