内存溢出
指程序运行过程中无法申请到足够的内存而导致的一种错误。内存溢出通常发生于OLD段或Perm段垃圾回收后,仍然无内存空间容纳新的Java对象的情况。
内存溢出的几种情况
-
堆内存溢出(outOfMemoryError:java heap space)
堆中的内存是用来生成对象实例和数组的
-
方法区内存溢出(outOfMemoryError:permgem space)
-
线程栈溢出(java.lang.StackOverflowError)
一般线程栈溢出是由于递归太深或方法调用层级过多导致的。