一、常見的Java內存溢出有以下三種:
1.java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出
JVM在啟動的時候會自動設置JVM Heap的值,其初始空間(即-Xms)是物理內存的1/64,最大空間(-Xmx)不可超過物理內存。

容城網站制作公司哪家好,找成都創新互聯!從網頁設計、網站建設、微信開發、APP開發、響應式網站開發等網站項目制作,到程序開發,運營維護。成都創新互聯于2013年成立到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選成都創新互聯。
可以利用JVM提供的-Xmn -Xms -Xmx等選項可進行設置。Heap的大小是Young Generation 和Tenured Generaion 之和。
在JVM中如果98%的時間是用于GC,且可用的Heap size 不足2%的時候將拋出此異常信息。
解決方法:手動設置JVM Heap(堆)的大小。
2.java.lang.OutOfMemoryError: PermGen space ---- PermGen space溢出
PermGen space的全稱是Permanent Generation space,是指內存的永久保存區域。
為什么會內存溢出,這是由于這塊內存主要是被JVM存放Class和Meta信息的,Class在被Load的時候被放入PermGen space區域,它和存放Instance的Heap區域不同,sun的 GC不會在主程序運行期對PermGen space進行清理,所以如果你的APP會載入很多CLASS的話,就很可能出現PermGen space溢出。
解決方法: 手動設置MaxPermSize大小
3.java.lang.StackOverflowError ---- 棧溢出
棧溢出了,JVM依然是采用棧式的虛擬機,這個和C和Pascal都是一樣的。函數的調用過程都體現在堆棧和退棧上了。
調用構造函數的 “層”太多了,以致于把棧區溢出了。
通常來講,一般棧區遠遠小于堆區的,因為函數調用過程往往不會多于上千層,而即便每個函數調用需要 1K的空間(這個大約相當于在一個C函數內聲明了256個int類型的變量),那么棧區也不過是需要1MB的空間。通常棧的大小是1-2MB的。通常遞歸也不要遞歸的層次過多,很容易溢出。
解決方法:修改程序。
二、方法具體步驟
1.linux下的tomcat:
修改TOMCAT_HOME/bin/catalina.sh 位置cygwin=false前。
JAVA_OPTS="-server -Xms256m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=128m" 2.如果tomcat 5 注冊成了windows服務,以services方式啟動的,則需要修改注冊表中的相應鍵值。
修改注冊表HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat5\Parameters\Java,右側的Options
原值為:
-Dcatalina.home="C:\ApacheGroup\Tomcat 5.0"
-Djava.endorsed.dirs="C:\ApacheGroup\Tomcat 5.0\common\endorsed"
-Xrs加入
-Xms256m -Xmx512m 重起tomcat服務,設置生效
**3.如果tomcat 6 注冊成了windows服務,或者windows2003下用tomcat的安裝版,在/bin/tomcat6w.exe里修改就可以了 。
4.如果要在myeclipse中啟動tomcat,上述的修改就不起作用了,可如下設置:
Myeclipse->preferences->myeclipse->servers->tomcat->tomcat×.×->JDK面板中的
Optional Java VM arguments中添加:
-Xms256m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=128m
網頁題目:Java內存設置詳解(含內存溢出問題的解決)
鏈接URL:http://www.yijiale78.com/article26/ihdocg.html
成都網站建設公司_創新互聯,為您提供手機網站建設、云服務器、營銷型網站建設、虛擬主機、企業建站、靜態網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯