内存泄露和内存溢出的区别是什么?

回答·44
最热
最新
  • 内存泄漏是因为类太多,方法区称放不下元数据,或者创建的对象太多,堆内存不够。而报错OOM。 而内存溢出指的是在堆中创建了对象之后,用了两次就不用了,却一直在被引用。导致jvm认为它并不是垃圾,而垃圾收集器没办法将它清除。导致这一块没存一直被占用(可以了解一下threadlocal的内存溢出,这个比较经典)。如果存在很多内存溢出,可能会导致内存泄漏。
  • 内存泄露是借钱不还,溢出是我只有100元,偏要花101元。
  • 内存溢出,创建太多对象,导致内存不足 内存泄漏,无用对象没有被回收
  • 内存泄漏memoryleak:是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出。 内存溢出outofmemory:指程序申请内存时,没有足够的内存供申请者使用,或者说,给了你一块存储int类型数据的存储空间,但是你却存储long类型的数据,那么结果就是内存不够用,此时就会报错OOM,即所谓的内存溢出。
  • 内存泄漏会导致内存溢出,内存泄漏是多个申请了内存空间的变量一直在占用,却无法被释放,也就是说内存泄漏是一个过程,进而导致内存溢出,内存溢出是结果,无法继续申请内存空间,内存占满了。
  • 内存泄露,指的是某些对象申请内存没有被释放,一直占用,比如引用计数算法无法解决的循环引用问题,这种对象内存一直占用,需要手动释放。 内存溢出,指的是对象太多申请的内存超出进程可申请内存的最大值
  • 内存溢出:系统中存在无法回收的内存或者占用的内存过多,导致程序所需的内存大于系统所能提供的最大内存 内存泄漏:程序中已动态分配的堆内存由于某种原因未释放或无法释放,造成系统资源的浪费
  • 泄露是没有用完后回收,溢出是超出了调用范围。
  • 内存泄漏是指动态请求的内存没有主动释放,导致这块内存一直被占用无法去访问,就导致了内存泄漏 内存溢出是指访问了没有权限访问的内存,常见的有数组越界
  • 内存泄漏指的是申请了的内存,无法失望导致的,时间长了,堆积的多了就成了内存溢出。 内存溢出指的是需要使用的内存比我们申请的内存大