美文网首页
内存泄漏

内存泄漏

作者: 萝卜枣 | 来源:发表于2018-04-20 08:48 被阅读0次

    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造成的内存泄漏

    相关文章

      网友评论

          本文标题:内存泄漏

          本文链接:https://www.haomeiwen.com/subject/nhbvqftx.html