几种常见的OOM(OutOfMemoryError)错误

1,java.lang.OutOfMemoryError: Java heap space,表示java堆空间不足。当应用程序申请更多的内存时,若java堆内存已经无法满足应用程序的需要,则抛出该异常。

2,java.lang.OutOfMemoryError:PermGen space,表示java永久代(方法区)的空间不足。永久代用于存放类的字节码和常量池,类的字节码被加载后存放在这个区域。大多数jvm的实现都不会对永久代进行垃圾回收,因此,只要类加载过多就会出现这个问题。

3,java.lang.OutOfMemoryError:unable to create new native thread,本质原因是创建了太多的线程,而系统允许创建的线程数量是有限的。

4,java.lang.OutOfMemoryError: GC overhead limit exceeded,是并行(或者并发)垃圾回收器的GC回收时间长,超过98%的时间用来做GC并且回收了不到2%的对内存时抛出的异常,用来提前预警,避免内存过小导致应用程序不能正常工作。

你可能感兴趣的:(Java开发)