内存溢出
方法入栈后,其中的局部变量逐渐增长,一直不释放,导致堆内存满了,无法存放新对象,使得方法抛出内存溢出的异常。
方法由于异常而出栈,方法中的对象也就失去引用,对象被回收,堆内存回复正常,其他方法可以正常访问。
内存泄漏
类似于内存溢出的缘由,但不同的时,它不是方法入栈后的局部变量,而是一直处于活跃状态的对象持续增长内存。
比如springIOC中的对象,它有个属性List,当我们不停往LIST放入数据,一定会出现内存溢出的问题。
可是这时候,就是抛出一样,也没有方法出栈一说,这个对象一直在IOC中引用着,GC不会去回收它,所以它会导致
堆内存越来越大,只至整个服务不可用
欢迎大家和帝都的雁积极互动,头脑交流会比个人埋头苦学更有效!共勉!
公众号:帝都的雁