java关于OutOfMemoryError(内存溢出)

OutOfMemoryError:PermGen space

原因:程序中使用了大量的jar或class,使java虚拟机装载类的空间不够,与Permanent Generation space有关。

解决方法:

增加java虚拟机中的XX:PermSize和XX:MaxPermSize参数的大小,其中XX:PermSize是初始永久保存区域大小,XX:MaxPermSize是最大永久保存区域大小。

对于tomcat来说,在catalina.sh 或catalina.bat文件中一系列环境变量名说明结束处增加如下内容:
JAVA_OPTS="-XX:PermSize=128m -XX:MaxPermSize=256m"

IDEA tomcat启动报错解决方法

VM options:-Xms258m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m

OutOfMemoryError:Java heap space

原因:java虚拟机创建的对象太多,在进行垃圾回收之间,虚拟机分配的到堆内存空间已经用满了,与Heap space有关。

解决方法:

  1. 检查程序,看是否有死循环或不必要地重复创建大量对象。找到原因后,修改程序和算法。
  2. 增加Java虚拟机中Xms(初始堆大小)和Xmx(最大堆大小)参数的大小。如:set JAVA_OPTS= -Xms256m -Xmx1024m

OutOfMemoryError:unable to create new native thread

原因:在Java线程个数很多的情况下容易发生。

解决方法:检查程序线程方面是否处理有误。

博客已迁移,欢迎关注 最新博客

发布了40 篇原创文章 · 获赞 54 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/wik_123/article/details/52638469