1.内存泄漏
java.lang.OutOfMemoryError
内存泄漏指的是无法释放已经申请的内存。
内存泄漏堆积会导致剩余内存不足(一次内存泄露后果可以忽略,但内存泄露堆积后果很严重,后续就无法申请到足够的内存空间,从而产生内存溢出。)
内存泄漏产生的原因:
1.循环过多或死循环,产生大量对象;
2.内存中加载的数据量过于庞大,如一次从数据库取出过多数据。
3.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收。
假如有500M内存,使用了200M,还剩300M内存,但是使用的200M内存并没有做任何有实际意义的事情,但是还不让它释放,当它无法释放的时候,我们在申请内存的时候,申请了三个对象,每个对象假如需要150M内存,那么内存肯定是不够使用的,所以就溢出了。
所以内存泄漏是内存溢出产生的原因之一。
2.内存溢出
内存溢出指的是无法申请到足够的内存