内存泄露和内存溢出
最近排查项目组问题的时候,收到了一些页面卡顿和内存溢出的问题,写一篇文章复习下内存泄露和内存溢出的知识。
内存泄露:程序使用一块内存,但是并没有释放它,通过堆积最终导致内存溢出。通常是存在一些无法被GC回收的对象,这些对象没有作用,却会一致占用内存。内存泄露是代码层面的问题,可以通过修改我们的程序来避免。
内存溢出:即程序在申请内存的时候,发现内存不够了。通常是因为JVM设置的内存过小、没有释放资源、一次性加载过多数据等等。解决办法可以分为两种:一是增大JVM内存,二是修改我们的程序,从根本上解决问题。
内存泄露会导致内存溢出,内存泄露的主要原因是代码层面的,所以提高我们程序的健壮性就很重要了。