1. 程式人生 > >JAVA中java.lang.OutOfMemoryError常見的解決方式

JAVA中java.lang.OutOfMemoryError常見的解決方式

rms 檢查 方式 兩種 方法 之間 內存溢出 高手 nbsp

在開發中我們很多人都遇到過內存溢出的情況,其實內存溢出分幾種形式:

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

總結:內存的處理,是對於一個開發者良好開發習慣的考驗,多年的開發過程,讓我知道了,開發大神高手不是有多牛的技術,是對好的開發習慣一種養成,細節決定成敗!

JAVA中java.lang.OutOfMemoryError常見的解決方式