java heap space 是指java 堆空间不足.
根据异常信息我们即可断定是由于JVM堆空间不足引起异常.
解决方法:
1.加大JVM堆空间大小(最简单的方法,但解决不了根本问题)
这种启动方式tomcat首先读取catalina.bat文件,我们需要在catalina.bat文件的第一行
或者在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下代码:
set JAVA_OPTS= -Xms128m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m
2>MyEclipse或其它IDE启动tomcat(以MyEclipse为例)
在这种启动tomcat方式下,程序是不读catalina.bat这个文件的,所以你在里面设置了参数也不管用的!应该在MyEclipse的配置服务
器的画面,选中要设置的tomcat,点开+号,下面有JDK的设置.在Optional Java VM arguments输入域中输入-Xms128m -Xmx512m
-XX:MaxNewSize=256m -XX:MaxPermSize=256m个参数.
3>系统服务版tomcat
如果使用的是服务版tomcat,打开tomcat服务主界面,打开Java选项卡,在Initial memory pool输入框和Maximun memory pool输
入框输入合适的大小.在Java options中输入 -XX:MaxNewSize=256m -XX:MaxPermSize=256m
2.代码调优
系统参数设置的再大,也扛不过应用程序长时间运行或大量用户同时访问.在程序中我们应该注意Java性能优化.急时释放没必要的内存!
1>急时把使用完的集合或大对象的值置为NULL
2>在Web开发中,尽量使用Request作用域存放变量,如果Request不能满足要求时,可以使Session作用域,但使用完毕后并没有再用到的
必要时,急时从Session作用域中把变量删除!
应用程序在开发阶段有时没必要优化JVM一些系统参数,但应用程序在生产阶段必须优化JVM参数.防止应用程序瘫痪.提高应用程序性能.