美文网首页
内存泄露案例

内存泄露案例

作者: 叙忆 | 来源:发表于2017-10-12 17:58 被阅读0次
对象本应被GC回收的情况,由于被外部对象引用持有,导致不能被正常回收
Bean.java
public class Bean {
    private Context mContext;

    public Bean(Context context) {
        mContext = context;
    }
}
MainActivity.java
public class MainActivity extends AppCompatActivity {

    public static ArrayList<Bean> mBeens = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //Bean持有MainActivity的实例
        //当旋转Activity 执行onCreate方法
        mBeens.add(new Bean(this));
    }
}
Bean持有MainActivity的实例
当旋转多次Activity 执行onCreate方法,由于mBeens是静态变量,始终持有MainActivity的对象
步骤
1.查看memory
2.多次旋转手机,导致memory上升
如上就是内存泄露

相关文章

  • 内存泄露案例

    对象本应被GC回收的情况,由于被外部对象引用持有,导致不能被正常回收 Bean.java MainActivity...

  • 内存泄露系列文章(一) - 内存泄露原因及影响

    前言 内存泄露系列文章内存泄露系列文章(一) - 内存泄露原因及影响内存泄露系列文章(二) - 内存泄露监测及分析...

  • 内存泄露系列文章(三) - 内存泄露解决方案

    前言 内存泄露系列文章内存泄露系列文章(一) - 内存泄露原因及影响内存泄露系列文章(二) - 内存泄露监测及分析...

  • 内存溢出与内存泄露

    目录 [TOC] 1 内存泄露与内存溢出的区别 1.1 内存泄露 内存泄露(Memory Leak),指的是堆内存...

  • 动态代理 快速排序 redis等杂笔

    动态代理的具体实现机器人要的案例。 内存泄露,如果长生命周期的对象持有短生命周期的引用,就很可能会出现内存泄露。说...

  • 内存泄漏详细分析

    首先,什么是内存泄露?经常听人谈起内存泄露,但要问什么是内存泄露,没几个说得清楚。内存泄露是指无用对象(不再使用的...

  • Java弱引用学习 WeakHashMap、ReferenceQ

    上一篇文章 Java内存泄露学习 ThreadLocal真的会内存泄露吗 提到ThreadLocal内存泄露的问题...

  • 内存优化

    内存优化主要是分析内存泄露和内存溢出。将从内存是怎么分配,内存怎么出现泄露和溢出,用工具判断什么情况出现泄露,找出...

  • 内存优化

    内存泄露的原因 四种引用类型 常见的内存泄露 1.内部类导致内存泄露 Handler 2.Context导致内存泄...

  • 内存泄漏/管理

    ARC 下内存泄露的那些点performSelector延时调用导致的内存泄露iOS ARC下几种导致内存泄露的场...

网友评论

      本文标题:内存泄露案例

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