JAVA中java.lang.OutOfMemoryError常见的解决方式

在开发中我们很多人都遇到过内存溢出的情况,其实内存溢出分几种形式:

1、tomcat中java.lang.OutOfMemoryError: PermGen space异常处理(最常见的)

    概念大家可以查查,其实大家还是关心解决方案:

    解决方法:

   (1)

     手动设置MaxPermSize大小修改TOMCAT_HOME/bin/catalina.sh在

    echo "Using CATALINA_BASE:   $CATALINA_BASE"

      上面加入以下行:

     JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m
(2)在eclipse中修改tomcat配置:
增加:-Xms256M -Xmx1024M -XX:PermSize=64M -XX:MaxPermSize=128M

2、java.lang.OutOfMemoryError:  Java heap space

发生这种问题的原因是java虚拟机创建的对象太多,在进行垃圾回收之间,虚拟机分配的到堆内存空间已经用满了,与Heap space有关。解决这类问题有两种思路:
1. 检查程序,看是否有死循环或不必要地重复创建大量对象。找到原因后,修改程序和算法。
2. 增加Java虚拟机中Xms(初始堆大小)和Xmx(最大堆大小)参数的大小。如:set JAVA_OPTS= -Xms256m -Xmx1024m

 

 

 

总结:内存的处理,是对于一个开发者良好开发习惯的考验,多年的开发过程,让我知道了,开发大神高手不是有多牛的技术,是对好的开发习惯一种养成,细节决定成败!

 

 


posted @ 2017-08-10 10:46  坤霸天下  阅读(919)  评论(0编辑  收藏  举报