几种OutOfMemoryError

JAVA虚拟机OutOfMemoryError主要包括以下四类:
java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: PermGen space
java.lang.OutOfMemoryError: unable to create new native thread
java.lang.OutOfMemoryError: Requested array size exceeds VM limit

在工作中我们经常会遇到Java heap space、PermGen space这两种错误。

Java heap space:
原因:Heap(堆)内存溢出,意味着Young和Old generation的内存不够。解决:调整java启动参数 -Xms -Xmx 来增加Heap内存。

PermGen space:
原因:Permanent Generation(永久代)空间不足,不能加载额外的类。解决:调整-XX:PermSize= -XX:MaxPermSize= 两个参数来增大PermGen内存。一般情况下,这两个参数不要手动设置,只要设置-Xmx足够大即可,JVM会自行选择合适的PermGen大小。

java.lang.OutOfMemoryError: unable to create new native thread
需要根据应用线程状态,调整虚拟机设置,参考文件:
http://sesame.iteye.com/blog/622670

java.lang.OutOfMemoryError: Requested array size exceeds VM limit
处理方式见:
http://stackoverflow.com/questions/1880687/how-to-simulate-the-out-of-memory-requested-array-size-exceeds-vm-limit

 

参考:
http://jingyan.baidu.com/article/3c343ff7ecec810d377963f5.html

posted @ 2016-05-13 10:35  沐风山  阅读(223)  评论(0编辑  收藏  举报