来了解一下内存溢出和内存泄漏

内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用;比如你申请了10个字节的空间,但是你在这个空间写入11或以上字节的数据,就是溢出 。

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

 

知乎某用户①

内存泄露:用完扔了,没有归还。
内存溢出:霸占不属于你的资源。

 

知乎某用户②

泄漏就是内存申请后,用完没有释放,造成可用内存越来越少。
溢出指用户实际的数据长度超过了申请的内存空间大小,导致覆盖了其他正常数据,容易造成程序异常,严重的,攻击者可以以此获取程序控制权。

 

知乎某用户③

钱丢了vs钱不够了

 

知乎某用户⑤

内存溢出:你去买鞋,今天你赶时间,没时间试。平时你穿42码的,但是美女导购劝你说 ‘这个款式号码偏大’,于是你买了1个41码的。能不能穿?导购漂亮不漂亮?
内存泄露:你去买鞋,今天发工资了,你高兴,但是昨天你踢球脚扭了还没消肿。同1个品牌同1个款式,平时你穿42码的,今天你试了试42码的,但是穿不进去。你买不买?
 
 
知乎某用户⑥
内存溢出,这个好理解,说明存储空间不够大。就像倒水倒多了,从杯子上面溢出了来了一样。
内存泄漏,原理是,使用过的内存空间没有被及时释放,长时间占用内存,最终导致内存空间不足,而出现内存溢出。这个也很好理解,所谓的“泄漏”是相对释放对象来定义的,逃脱了释放对象的释放,漏处理了,也就是泄漏。形象一点理解,就是一个大的排放废水的池子,你用水瓢(相当于释放对象)瓢水,但是水瓢有个洞,漏了。
posted @ 2018-01-26 18:19  温柔的风  阅读(291)  评论(0编辑  收藏  举报