java.lang.OutOfMemoryError: Java heap space

Exception in thread "main" java.lang.OutOfMemoryError: Java heap spacejava

今天我想說說這個有趣的問題,這的確是個讓人費解的是error
問題來源:windows

        這個問題通常會出在myecplise 和ecplise ,即在java程序還在測試階段,可是我想若是你的程序export後應該還會遇到這個問題eclipse

報錯:Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

報錯分析:jvm

        這個錯誤的出現主要是java的虛擬機jvm的內存不夠了,通俗點兒說就是java程序運行過程當中JVM能夠調配使用的內存空間的設置(JVM在啓動的時候會自動設置Heap size的值,固然這個值是能夠手動指定的) 。 而這個問題出現的根源也是比較多,可是通常來講歸結爲兩點:測試


 一、所謂的內存泄漏(怎麼泄漏的,本身找緣由),致使你的jvm內存不夠使用;
 二、處理的數據太大(這個是最主要的緣由),也就是你的數據處理太多,jvm一會兒搞不定了;spa

解決方法:code

        針對錯誤分析給出解決方法
 一、對於內存泄漏而言,固然是去查看本身的程序了,查看你的變量的定義,實例化,等等;
 二、對於數據量大,主要的處理是增長jvm的大小,分批處理你要處理的數據;

 
 調整jvm (寫的太大會曝出 Error occurred during initialization of VM Could not reserve enough space for object heap)
 eclipse中的解決辦法是:windows->preferences->Java->Installed JARS->edit->Default VM Arguments 這個文本框中輸入:-Xms256m -Xmx512m
 myecplise中的處理相似,至於這個參數到底多少合適,你若是想從我這兒看到結果那你錯了,這個參數的給出是你本身實驗的結果,個人不必定適合你,這個也是不少人當遇到問題來尋找方法解決時候的通病,總但願別人給你一個東西那就可使用了(可是這個只是揚湯止沸,而不是釜底抽薪的作法)
 
 下面介紹釜底抽薪的的作法————對處理數據的分批量處理,這是處理數據的王道,由於數據大因此分開處理(這就跟你拿東西同樣,籃子過小拿不來東西,要不換個大點兒的籃子要不你少拿點兒)
 
PS:ip

          若是看到這兒你還對Java heap space 問題的處理沒有頭緒那隻能說是個人失敗了,固然我這裏給你的主要是問什麼會出現這個問題和解決這個問題的思路,至於具體的方法,你能夠 找度娘啊  內存

 Exception in thread "main" java.lang.OutOfMemoryError: Java heap space  ,但願我能夠幫到你。
 虛擬機

相關文章
相關標籤/搜索