本文主要是介绍JVM:浅谈内存溢出的原因,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、java heap space
java.lang.OutOfMemoryError: …java heap space… 堆栈溢出,代码问题的可能性极大。
2、GC over head limit exceeded
java.lang.OutOfMemoryError: GC over head limit exceeded 系统处于高频的GC状态,而且回收的效果依然不佳的情况,就会开始报这个错误。这种情况一般是产生了很多不可以被释放的对象,有可能是引用使用不当导致,或申请大对象导致。
3、PermGen space
java.lang.OutOfMemoryError: PermGen space jdk1.7之前才会出现的问题 ,原因是系统的代码非常多或引用的第三方包非常多、或代码中使用了大量的常量、或通过intern注入常量、或者通过动态代码加载等方法,导致常量池的膨胀。
4、Direct buffer memory
java.lang.OutOfMemoryError: Direct buffer memory 直接内存不足,因为jvm垃圾回收不会回收掉直接内存这部分的内存,所以可能原因是直接或间接使用了ByteBuffer中的allocateDirect方法的时候,而没有做clear。
5、StackOverflowError
java.lang.StackOverflowError - Xss设置的太小了。
6、unable to create new native thread
java.lang.OutOfMemoryError: unable to create new native thread 堆外内存不足,无法为线程分配内存区域。
7、request {} byte for {}out of swap
java.lang.OutOfMemoryError: request {} byte for {}out of swap 地址空间不够。
这篇关于JVM:浅谈内存溢出的原因的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!