1、什么是内存泄漏
一部分内存空间我明明已经使用了,却没有引用指向这部分空间。造成这片已经使用的空间无法处理的情况
内存泄漏是个很严重的问题,也比较常见。
最主要的原因是动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束
2、内存泄漏的危害
- 长时间运行,程序变卡,性能严重下降
- 程序莫名其妙挂掉
- 乱七八糟的错误,还不易排查
反正内存泄漏不是好事。
3、内存泄漏的原因
(1)、大量使用静态变量
由于静态变量与程序生命周期一致,因此静态变量会常驻内存,造成内存泄漏
(2)、连接资源未关闭
每当建立一个连接,系统会对资源分配内存。比如数据库连接、文件输入输出流、网络连接等等。
(3)申请了一块内存空间后,未初始化便读其中的内容
(4)间接申请动态内存但并没有进行释放
(5)释放完一块动态申请的内存后继续引用该内存内容