内存泄漏

java内存泄漏基础知识
该被释放的时候没被释放,一直被某个对象所持有,导致不能gc。

1、java内存的分配策略
1)静态存储区
方法区,主要存放静态数据,全局变量。程序编译的时候已经分配好,并且在整个程序运行期间都存在。
2)栈区
方法体内的局部变量会在栈上创建内存空间,并在方法执行结束后自动释放。效率高,但是容量有限
3)堆区
通常是new对象创建出来的内存,通常在不使用的时候由java垃圾回收器进行回收。

2、java如何管理内存
通过new为每个对象申请内存空间。

3、java内存泄漏
内存泄漏是指无用对象(不再使用的对象)持续占有内存或无用对象的内存得不到及时释放,从而造成的内存空间的浪费成为内存泄漏。

Android内存泄漏:
1.单例生命周期与应用生命周期相同。
2.匿名内部类 非静态内部类会持有外部类的引用,所以通常用静态内部类
3.Handler 静态+弱引用 + 回收(因为handler是非静态内部类)
4.尽量避免使用static变量
5.资源未关闭造成的内存泄漏
6.AsyncTask造成的内存泄漏

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

推荐阅读更多精彩内容

  • Android 内存泄漏总结 内存管理的目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题。内存泄漏...
    apkcore阅读 1,237评论 2 7
  • Android 内存泄漏总结 内存管理的目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题。内存泄漏...
    神奇的小蘑菇阅读 542评论 0 0
  • Android 内存泄漏总结 内存管理的目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题。内存泄漏...
    _痞子阅读 1,654评论 0 8
  • 内存管理的目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题。内存泄漏大家都不陌生了,简单粗俗的讲,...
    DreamFish阅读 802评论 0 5
  • 内存管理的目的就是让我们在开发中怎么有效的避免我们的应用出现内存泄漏的问题。内存泄漏大家都不陌生了,简单粗俗的讲,...
    宇宙只有巴掌大阅读 2,415评论 0 12