内存泄露

什么是内存泄漏?

内存泄漏:是指程序中已动态分配的堆内存由于某种原因未释放或⽆法释放,造成系统内存的浪费,导致程序运⾏速度减慢甚⾄系统奔溃等严重后果

内存泄漏的特性:

内存泄漏具有隐蔽性,积累性的特征,⽐其他内存⾮法访问错误更难检测。这是因为内存泄漏产⽣的原因是内存块未被释放,属于遗漏型缺陷⽽不是过错型缺陷。

此外,内存泄漏不会直接产⽣可观察的错误,⽽是逐渐积累,降低系统的整体性性能。

内存溢出 :

内存溢出:out of memory 指程序在申请内存时,没有⾜够的内存空间供其使⽤,出现out fo memory ⽐如申请⼀个integer 但给它存了long才能存下的数那就是内存溢出。

内存泄漏与溢出的关系

我们了解到内存泄露就是不再会被使⽤的对象的内存不能被回收,那么⼀次内训泄漏似乎不会有⼤的影响,但内存泄漏后堆积的结果就是内存溢出。