什么是内存泄漏?

电脑教程017

什么是内存泄漏?,第1张

内存泄漏

内存泄漏也称作"存储渗漏",用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。(其实说白了就是该内存空间使用完毕之后未回收)即所谓内存泄漏。

内存泄漏形象的比喻是"操作系统可提供给所有进程的存储空间正在被某个进程榨干",最终结果是程序运行时间越长,占用存储空间越来越多,最终用尽全部存储空间,整个系统崩溃。所以"内存泄漏"是从操作系统的角度来看的。这里的存储空间并不是指物理内存,而是指虚拟内存大小,这个虚拟内存大小取决于磁盘交换区设定的大小。由程序申请的一块内存,如果没有任何一个指针指向它,那么这块内存就泄漏了。

  内存泄漏也称作"存储渗漏",用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元,直到程序结束。

  简而言之,就是该内存空间使用完毕之后未回收。

1、资源型对象未关闭: Cursor,File

2、注册对象未销毁: 广播,回调监听

3、类的静态变量持有大数据对象

4、非静态内部类的静态实例

5、Handler 临时性内存泄漏: 使用静态 + 弱引用,退出即销毁

6、容器中的对象没清理造成的内存泄漏

7、WebView: 使用单独进程