1. 内存泄露(Memory Leak)

是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露的危害可以忽略,但内存泄露堆积的后果很严重,无论多少内存,最终都会被占光。

2. 内存溢出(Out of Memory, OOM)

是指程序在申请内存时,系统没有足够的内存空间供其使用,出现out of memory。比如,申请了一个integer数据类型空间,却给了它一个long类型大小才能存下的数,那会造成内存溢出。

注:内存泄漏最终会导致内存溢出。

内存泄漏是指你向系统申请分配内存进行使用(new),可是使用完了以后却不归还(delete),结果你申请到的那块内存你自己也不能再访问(也许你把它的地址给弄丢了),而系统也不能再次将它分配给需要的程序。内存溢出就是你要求分配的内存超出了系统能给你的,系统不能满足需求,于是产生溢出。比方说栈,栈满时再做进栈必定产生空间溢出,叫上溢,栈空时再做退栈也产生空间溢出,称为下溢。就是分配的内存不足以放下数据项序列,称为内存溢出。