内存泄漏指在程序运行过程中,由于某些原因导致申请的内存空间没有被正确释放,从而造成了内存的浪费和程序性能下降。
开发中可能出现内存泄漏的场景包括:
-
对象没有被正确释放:当程序中某个对象不再被使用时,没有及时将其释放导致内存泄漏。
-
持续分配内存:在程序运行过程中频繁地分配内存,并没有及时地释放,导致内存泄漏。
-
循环引用:在程序中出现 A 对象引用 B 对象,B 对象引用 A 对象的情况,当 A 和 B 对象都没有被外部对象引用时,它们之间的内存就无法被释放,导致内存泄漏。
-
静态变量和单例模式:静态变量和单例模式在内存中只会被创建一次,当使用完毕后未被及时释放,也会导致内存泄漏。
-
缓存对象:缓存对象在程序中经常被使用,但是在使用过程中并没有被及时清理,导致内存泄漏。
-
文件处理:在进行文件处理时,如果未在适当的时候释放资源,也会导致内存泄漏。