昨天和一个实验室的哥们讨论内存溢出和泄漏的定义和区别,居然发现自己都还不能解释明白,然后我想了想,查了些资料,有了一个通俗的理解方案。
形象的说:譬如 Jvm 现在可提供的内存资源就像是一个容量500ml的杯子,然后你现在的应用需要的内存量可以比作是600ml的水,现在把水全部倒入杯子,就产生溢出的现象。
内存泄漏
抽象的说: 在整个系统的运行过程中,由于程序员的各位骚操作,没有让gc 回收掉实际不需要的对象,导致jvm可分配的资源愈来愈少。
形象的说:Jvm 现在可提供的内存资源还是一个容量的500ml杯子,内存泄漏就是相当于减少了杯子的高度,减少了杯子的容量。
关系: 内存溢出和内存泄漏没有必然的联系。
内存泄漏可能会导致内存溢出的发生。
菜鸟之见,如果有幸被老鸟发现错误之处,恳请批评指正。
内存溢出
形象的说:譬如 Jvm 现在可提供的内存资源就像是一个容量500ml的杯子,然后你现在的应用需要的内存量可以比作是600ml的水,现在把水全部倒入杯子,就产生溢出的现象。
内存泄漏
抽象的说: 在整个系统的运行过程中,由于程序员的各位骚操作,没有让gc 回收掉实际不需要的对象,导致jvm可分配的资源愈来愈少。
形象的说:Jvm 现在可提供的内存资源还是一个容量的500ml杯子,内存泄漏就是相当于减少了杯子的高度,减少了杯子的容量。
关系: 内存溢出和内存泄漏没有必然的联系。
内存泄漏可能会导致内存溢出的发生。
菜鸟之见,如果有幸被老鸟发现错误之处,恳请批评指正。