//首先检查程序有没 有限入死循环

  这个问题主要还是由这 个问题 java.lang. OutOfMemor yError: Java heap space 引起的。第一次出现这 样的的问题以后,引发 了其他的问题。在网上 一查可能是JAVA的 堆栈设置太小的原因。

  跟据网上的答案大致有 这两种解决方法:

  1、设置环境变量

  解决方法:手动设置H eap size

  修改TOMCAT_H OME/bin/ca talina.sh

  set JAVA_OPTS=  -Xms32m -Xmx512m

  可以根据自己机器的内 存进行更改。

  2、java -Xms32m -Xmx800m className

  就是在执行JAVA类 文件时加上这个参数, 其中classNam e是需要执行的确类名 。(包括包名)

  这个解决问题了。而且 执行的速度比没有设置 的时候快很多。

  如果在测试的时候可能 会用Eclispe 这时候就需要在Ecl ipse ->run -arguments  中的VM arguments 中输入-Xms32m  -Xmx800m这个 参数就可以了。

  后来在Eclilps e中修改了启动参数, 在VM arguments 加入了-Xms32m  -Xmx800m,问 题解决。

  一、java.lan g.OutOfMem oryError: PermGen space

  PermGen space的全称是P ermanent Generation  space,是指内存 的永久保存区域,

  这块内存主要是被JV M存放Class和M eta信息的,Cla ss在被Loader 时就会被放到Perm Gen space中,

  它和存放类实例(In stance)的He ap区域不同,GC( Garbage Collection )不会在主程序运行期 对

  PermGen space进行清理, 所以如果你的应用中有 很多CLASS的话, 就很可能出现Perm Gen space错误,

  这种错误常见在web 服务器对JSP进行p re compile的时候 。如果你的WEB APP下都用了大量的 第三方jar, 其大小

  超过了jvm默认的大 小(4M)那么就会产 生此错误信息了。

  解决方法: 手动设置MaxPer mSize大小

  修改TOMCAT_H OME/bin/ca talina.sh

  在“echo "Using CATALINA_B ASE:   $CATALINA_ BASE"”上面加入 以下行:

  JAVA_OPTS= "-server -XX:PermSi ze=64M -XX:MaxPer mSize=128m

  建议:将相同的第三方 jar文件移置到to mcat/share d/lib目录下,这 样可以达到减少jar  文档重复占用内存的目 的。

  二、java.lan g.OutOfMem oryError: Java heap space

  Heap size 设置

  JVM堆的设置是指j ava程序运行过程中 JVM可以调配使用的 内存空间的设置.JV M在启动的时候会自动 设置Heap size的值,

  其初始空间(即-Xm s)是物理内存的1/ 64,最大空间(-X mx)是物理内存的1 /4。可以利用JVM 提供的-Xmn -Xms -Xmx等选项可

  进行设置。Heap size 的大小是Young Generation  和Tenured Generaion 之和。

  提示:在JVM中如果 98%的时间是用于G C且可用的Heap size 不足2%的时候将抛出 此异常信息。

  提示:Heap Size 最大不要超过可用物理 内存的80%,一般的 要将-Xms和-Xm x选项设置为相同,而 -Xmn为1/4的- Xmx值。

  解决方法:手动设置H eap size

  修改TOMCAT_H OME/bin/ca talina.sh

  在“echo "Using CATALINA_B ASE:   $CATALINA_ BASE"”上面加入 以下行:

  JAVA_OPTS= "-server -Xms800m -Xmx800m   -XX:MaxNew Size=256m"

  三、实例,以下给出1 G内存环境下java  jvm 的参数设置参考:

  JAVA_OPTS= "-server -Xms800m -Xmx800m -XX:PermSi ze=64M -XX:MaxNew Size=256m -XX:MaxPer mSize=128m  -Djava.awt .headless= true "

  很大的web工程,用 tomcat默认分配 的内存空间无法启动, 如果不是在myecl ipse中启动tom cat可以对tomc at这样设置:

  TOMCAT_HOM E\bin\cata lina.bat 中添加这样一句话:

  set JAVA_OPTS=  -Xmx1024M -Xms512M -XX:MaxPer mSize=256m

  如果要在myecli pse中启动,上述的 修改就不起作用了,可 如下设置:

  Myeclipse- >preferenc es->myecli pse->serve rs->tomcat ->tom cat×.×->JD K面板中的

  Optional Java VM arguments中 添加:-Xmx102 4M -Xms512M -XX:MaxPer mSize=256m   海柳 烟嘴 正品

  在myeclipse 中启动Tomcat时 ,提示"ava.la ng.OutOfMe moryError:  Java heap space",解决办 法就是:

  Myeclipse- >preferenc es->myecli pse->serve rs->tomcat ->tom cat×.×->JD K面板中的

  Optional Java VM arguments中 添加:-Xmx102 4M -Xms512M -XX:MaxPer mSize=256m

  //以上是转载

  我遇到的错误是在my eclipse中启动 Tomcat时,提示 "ava.lang. OutOfMemor yError: Java heap space"

  以上三点我都试过了 就是不知道自己的代码 从哪里进入死循环  我运用的是strut s,hibernat e,spring

  根据错误提示JSON Write 找到自己项目下poj o下hibernat e的映射文件

  eg:

  有两张关联的表 生成两个相联的实体类  和映射文件 PersonInfo mation和Sta teOffice

  因为映射文件和实体类 是从数据库表自动生成 的  所以都是自动生成双向 的关系

  在PersonInf omation中pr ivate PersStateO ffice persStateO ffice;

  并且在StateOf fice中priva te Set<PersPe rsonInform ation> persPerson Informatio ns = new HashSet<Pe rsPersonIn formation> (

  0);

  所以在封装json数 据的时候就会出现死循 环现象 不断的从两个实体类中 封装 导致内存溢出

  解决方案 1 取消StateOff ice中的关联 2手动封装json数 据(为了不让查询数据 出现错误与冲突 我选择手动封装jso n数据)

  eg://获取任职类 型

  public String loadOffice Type() throws Exception {

  PrintWrite r out = response.g etWriter() ;

  typeOffice List=offic eTypeServi ce.getOffi ceType();

  out.print( "{typeOffi ceList:[") ;

  for(int i=0;i<type OfficeList .size();i+ +){

  out.print( "{typeOffi ceId:'"+ty peOfficeLi st.get(i).  getTypeOff iceId()+"' ,");

  out.print( "typeOffic e:'"+typeO fficeList. get(i).get  TypeOffice ()+"'}");

  if(i!=type OfficeList .size()-1) {

  out.print( ",");

  }

  }

  out.print( "]}");

  return null;

  }

关于java.lang.OutOfMemoryError:java heap space错误解决方案相关推荐

  1. java.lang.OutOfMemoryError: Java heap space错误及...

    为什么80%的码农都做不了架构师?>>>    以下是从网上找到的关于堆空间溢出的错误解决办法: java.lang.OutOfMemoryError: Java heap spac ...

  2. (转)java.lang.OutOfMemoryError: Java heap space错误及处理办法(收集整理、转)

    java.lang.OutOfMemoryError: Java heap space =================================================== 使用Ja ...

  3. Eclipse 报 “Exception in thread main java.lang.OutOfMemoryError: Java heap space ”错误的解决办法

    Eclipse 报 "Exception in thread "main" java.lang.OutOfMemoryError: Java heap space &qu ...

  4. Eclipse 报 “Exception in thread main java.lang.OutOfMemoryError: Java heap space ”错误的解决办法...

    Eclipse 报 "Exception in thread "main" java.lang.OutOfMemoryError: Java heap space &qu ...

  5. java.lang.OutOfMemoryError: Java heap space错误及处理办法(收集整理、转)

    下面是从网上找到的关于堆空间溢出的错误解决的方法: java.lang.OutOfMemoryError: Java heap space ============================== ...

  6. java.lang.OutOfMemoryError: Java heap space 错误及解决办法

    java.lang.OutOfMemoryError: Java heap space =================================================== 使用Ja ...

  7. eclipse中java.lang.OutOfMemoryError: Java heap space错误

    Myeclipse中报java.lang.OutOfMemoryError: Java heap space错误 解决办法: 选中被运行的类,点击菜单'run->run Configuratio ...

  8. java.lang.OutOfMemoryError: Java heap space错误和方法(集、转)

    错误的方式来解决溢出下面的堆空间是从网上找: java.lang.OutOfMemoryError: Java heap space ================================= ...

  9. opatch java.lang.OutOfMemoryError:Java heap space错误一例

    一套11.1.0.6的RAC系统在在使用opatch工具时出现了OutOfMemoryError: Java heap space错误,其错误日志如下: opatch lsinventory Invo ...

  10. caused by: java.lang.outofmemory_hadoop运行java.lang.OutOfMemoryError:java heap space错误。

    在map任务中,导入了99M的文件,运行时出现下面的问题: java.lang.RuntimeException:java.lang.reflect.InvocationTargetException ...

最新文章

  1. 推荐系统中常用算法 以及优点缺点对比
  2. java优先队列PriorityQueue修改队列内元素排序问题
  3. Html5相关文章链接
  4. 稳定和高质量是最好的选择
  5. MongoDB 查询时间差问题修复
  6. Hadoop源码分析21:namenode概要
  7. Vue todos代办事项功能
  8. 用python自动制作ppt——第三讲——插入文本框
  9. html清除图层,ps按delete不能删除图层怎么办?
  10. 金蝶K3序时簿页面增加物料即时库存显示功能
  11. 编程中的数学——编程遇见数学,让数学更有趣!
  12. 我也说说《变形金刚》2
  13. 三种算法求解最大公约数和最小公倍数
  14. JavaScript中原生Array数组方法详解
  15. Pandas 02-基础
  16. 从博士生论文选题看威客理论研究最新进展
  17. 第一章【Oracle自动化部署脚本】诞生
  18. 【OpenCV 笔记】编译Opencv contrib模块
  19. 用Python分析完6000 款 App,得出这些结论
  20. C标签和s标签的对比,特别是里面的if判断条件的写法

热门文章

  1. JavaScript阴沟里翻船之运算符优先级
  2. 看雪学院-OllyDBG入门系列(二)笔记
  3. ifconfig命令结果详解
  4. Stk 10 软件获取卫星位置、高度角、方位角
  5. Linux中sed命令使用大全
  6. SonarQube +Jenkins +JaCoCo 实现Java单元测试,单节点集成覆盖率测试,集群集成覆盖率测试(三)~集成测试篇
  7. Nginx的核心原理解析
  8. Java + 腾讯企业邮箱 + javamail发送邮件
  9. 大白话理解局域网以及局域网ip分配(有效引导篇)
  10. 【Matlab】根据传递函数绘制离散系统的根轨迹