常见的几种OOM异常
java.lang.OutOfMemoryError: Java heap space
原因:java堆内存空间不足时的异常
java.lang.OutOfMemoryError: PermGen space
原因:jdk7及前的版本,永久代空间分配不足时的异常
java.lang.OutOfMemoryError: Metaspace
原因:jdk8版本后,元空间替换了以前的永久代,当元空间分配内存不足时的异常
java.lang.OutOfMemoryError: GC overhead limit exceeded
原因:java堆设置的值过小或者程序运行期间,经过连续5次垃圾收集后可用内存都少于2%,则报此异常
java.lang.OutOfMemoryError: unable to create new native thread
原因:内存不足以创建新的线程或者创建线程数超过了操作系统的限制
java.lang.OutOfMemoryError: Direct buffer memory
原因:使用了NIO,分配直接内存空间不足时导致的异常
java.lang.OutOfMemoryError: Requested array size exceeds VM limit
原因:数组过长导致的内存溢出