浅谈内存泄漏&内存溢出

本文深入探讨了Java中的内存泄漏及其导致的内存溢出问题。内存泄漏由于循环、大数据量加载、未清除集合引用等原因造成,不断堆积会耗尽可用内存,最终引发内存溢出错误。理解并解决这些问题对于优化Java应用性能至关重要。
摘要由CSDN通过智能技术生成

1.内存泄漏

java.lang.OutOfMemoryError
内存泄漏指的是无法释放已经申请的内存。
内存泄漏堆积会导致剩余内存不足(一次内存泄露后果可以忽略,但内存泄露堆积后果很严重,后续就无法申请到足够的内存空间,从而产生内存溢出。)

内存泄漏产生的原因:
1.循环过多或死循环,产生大量对象;
2.内存中加载的数据量过于庞大,如一次从数据库取出过多数据。
3.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收。

假如有500M内存,使用了200M,还剩300M内存,但是使用的200M内存并没有做任何有实际意义的事情,但是还不让它释放,当它无法释放的时候,我们在申请内存的时候,申请了三个对象,每个对象假如需要150M内存,那么内存肯定是不够使用的,所以就溢出了。

所以内存泄漏是内存溢出产生的原因之一。

2.内存溢出

内存溢出指的是无法申请到足够的内存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值