Java内存溢出与内存泄漏的区别

内存溢出

程序需要内存,向虚拟机申请,虚拟机内存不够,向系统申请;当虚拟机的总内存达到设置的最大内存时,就不会再向系统申请了,这时程序再申请内存时,如果虚拟机可用内存不够了,就是内存溢出。

内存泄漏

没用的数据继续占用内存,就是内存泄漏,内存泄漏积累到一定程度,会造成内存溢出。

个人认为,java不存在内存溢出。因为虚拟机会自动回收无用对象,也就是不可达对象。所有可达的对象,虚拟机都认为是有用的,自然不会去回收。

有人说,静态集合、静态变量、监听器、各种链接、单例等等是Java内存泄漏的主要原因,但是我觉得,对于一个合格的程序员来说,既然这样定义了,就是有用的,既然是有用的,就不是内存浪费(内存泄漏)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值