Java 内存溢出和泄漏通俗理解

昨天和一个实验室的哥们讨论内存溢出和泄漏的定义和区别,居然发现自己都还不能解释明白,然后我想了想,查了些资料,有了一个通俗的理解方案。


内存溢出


抽象的说:一个应用需要的内存量,可Jvm 根据现有的可用的内存资源满足不了应用的需求,就产生了内存溢出。
             
形象的说:譬如 Jvm 现在可提供的内存资源就像是一个容量500ml的杯子,然后你现在的应用需要的内存量可以比作是600ml的水,现在把水全部倒入杯子,就产生溢出的现象。


内存泄漏


抽象的说: 在整个系统的运行过程中,由于程序员的各位骚操作,没有让gc 回收掉实际不需要的对象,导致jvm可分配的资源愈来愈少。


形象的说:Jvm 现在可提供的内存资源还是一个容量的500ml杯子,内存泄漏就是相当于减少了杯子的高度,减少了杯子的容量。




关系:   内存溢出和内存泄漏没有必然的联系。
            
           内存泄漏可能会导致内存溢出的发生。  



菜鸟之见,如果有幸被老鸟发现错误之处,恳请批评指正。
       
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值