seo论坛站长交流,省交通建设质安监督局网站,装修公司的网站怎么做,建设网站架构服务器需要多少钱原文地址https://www.zhihu.com/question/40560123 简单来说#xff0c;操作系统就像资源分配人员#xff0c;你要使用内存的时候分给你#xff0c;你用完了还给它。如果你使用了没有分配给你的内存就是内存溢出#xff0c;如果你用完了没有还就是内存泄漏。会引起的问题操作系统就像资源分配人员你要使用内存的时候分给你你用完了还给它。如果你使用了没有分配给你的内存就是内存溢出如果你用完了没有还就是内存泄漏。会引起的问题内存溢出存在的问题是你用了没有分配给你的内存系统是不知道的他又把内存分配给了其他程序结果就是别人也写了或者读了这个内存。程序可能崩溃。当然也可能没问题所以内存溢出往往不好查。内存泄漏的问题就比理解你没有还给系统系统的内存就越来越少。直到没有可用内存。泄漏是占着不用了溢出是用不该用的地方溢出一般会出事泄漏在内存无限时不会出事。泄漏是说你的程序有BUG 导致内存不释放。溢出是指内存不够用了 导致不够用的原因很多 泄漏只是其中一种。内存泄露是指你的应用使用资源之后没有及时释放导致应用内存中持有了不需要的资源这是一种状态描述。而内存溢出是指你的应用的内存已经不能满足正常使用了堆栈已经达到系统设置的最大值进而导致崩溃这事一种结果描述。而且通常都是由于内存泄露导致堆栈内存不断增大从而引发内存溢出。所谓内存泄漏只是一个编程习惯的问题。实际上很多内存泄漏对程序的运行不会有任何影响有的内存泄漏要连续不关机不重启电脑长达几十年的时间才会被人觉察到。比如说电脑的内存有32GB你程序分配了一块2KB的内存。而这块内存没有起任何作用就一直放在那里。这就是内存泄漏的一种。有什么影响吗 毫无影响。一般说内存泄漏是指分配了一块内存用它存了一些东西然后不再用它了但并没有把这块内存释放掉。实际上只要程序退出了不管泄漏不泄露所有的内存一样会释放。内存溢出比这严重多了。比如电脑有32GB的内存32GB全用完了这叫内存溢出。不管内存泄漏与否只要用了这么多内存都会导致内存溢出。内存溢出这个好理解说明存储空间不够大。就像倒水倒多了从杯子上面溢出了来了一样。内存泄漏原理是使用过的内存空间没有被及时释放长时间占用内存最终导致内存空间不足而出现内存溢出。这个也很好理解所谓的“泄漏”是相对释放对象来定义的逃脱了释放对象的释放漏处理了也就是泄漏。形象一点理解就是一个大的排放废水的池子你用水瓢相当于释放对象瓢水但是水瓢有个洞漏了。泄漏就是内存申请后用完没有释放造成可用内存越来越少。溢出指用户实际的数据长度超过了申请的内存空间大小导致覆盖了其他正常数据容易造成程序异常严重的攻击者可以以此获取程序控制权。内存泄露:用完扔了没有归还。内存溢出:霸占不属于你的资源。