内存泄漏大部分情况下是发生在Java堆中,内存溢出问题解决方法如下:
一般的手段先是通过内存镜像分析工具对dump出来的堆转存进行分析,确认内存中的对象是否必要,确定是出现的内存溢出还是内存泄漏。
1.内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。在Java堆与方法区会抛出内存溢出。
2.内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。
memory leak会最终会导致out of memory!