什么是内存泄漏?该如何检测?又该如何解决?

1、什么是内存泄漏

一部分内存空间我明明已经使用了,却没有引用指向这部分空间。造成这片已经使用的空间无法处理的情况

内存泄漏是个很严重的问题,也比较常见。

最主要的原因是动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束

2、内存泄漏的危害

  • 长时间运行,程序变卡,性能严重下降
  • 程序莫名其妙挂掉
  • 乱七八糟的错误,还不易排查

反正内存泄漏不是好事。

3、内存泄漏的原因

(1)、大量使用静态变量

由于静态变量与程序生命周期一致,因此静态变量会常驻内存,造成内存泄漏

 

(2)、连接资源未关闭

每当建立一个连接,系统会对资源分配内存。比如数据库连接、文件输入输出流、网络连接等等。

 

(3)申请了一块内存空间后,未初始化便读其中的内容

 

(4)间接申请动态内存但并没有进行释放

 

(5)释放完一块动态申请的内存后继续引用该内存内容

 

posted @ 2021-07-20 16:40  蒲城小农  阅读(249)  评论(0编辑  收藏  举报