Java heap space 的具体解决方法

java.lang.OutOfMemoryError: Java heap space

这种情况一般是程序本身问题导致在运行中使JVM内存溢出,从而抛出此异常:

1、首先就是需要检查下自己代码问题,比如有没有死循环或者递归调用没设置停止条件等等;

2、手动设置程序运行时的JVM堆栈内存,一般都是调大些,具体方法:

 å¯¹æ‰€ä»¥å·¥ç¨‹éƒ½æœ‰æ•ˆï¼šä¿®æ”¹eclipse根目录下的eclipse.ini文件

-vmargs  //虚拟机设置
-Xms40m //初始内存
-Xmx256m //最大内存
-Xmn16m //最小内存
-XX:PermSize=128M //非堆内存
-XX:MaxPermSize=256M

 åªå¯¹å½“前工程有效:在Eclipse中-->右击工程/要运行的主类-->Debug As-       ->DebugConfigurations-->(x)=Arguments-->VM arguments中加入-       Xmx36m,然后Apply-->Run

这上面的36指的是给java虚拟机分配的最大堆内存大小,单位是MB,也就       是说上面的那句话的含义是JVM的最大堆内存是36MB。

如果以上方法均无效,那可能就是Eclipse本身的问题,需要重新安装。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-29
问题可以描述清楚点吗,比如你遇到的具体问题

这个是虚拟机内存溢出, 一般出现的原因有两个:1:程序有问题,比如死循环等一直执行。2:虚拟机的内存分配太小,建议修改虚拟机分配的内存:
Xms800m
-Xmx800m
修改配置文件中这两项的值,不能超出本机内存
第2个回答  2012-06-30
修改默认内存 只是治标不治本,比如你一个list里面 放了10w条记录 溢出了
你把内存调高点 到了15w 还是得溢出
要防止堆溢出
注意以下几点
1.代码中尽量少new 对象
2.尽可能在循环外面 创建对象
3.存数据的容器 比如array 很省空间,而像hashtable这种 就很占空间
4. 少用一些重量级的组件 比如那个calendar对象 很占空间本回答被网友采纳
第3个回答  2012-06-29
内存溢出了. 吧JAVA虚拟机的内存配高点就行了.
相似回答