java.lang.OutOfMemoryError这个错误我相信大部分开发人员都有遇到过,这种现象在专业上叫Java 内存溢出(java.lang.OutOfMemoryError)。产生该错误的原因大都出于以下原因:JVM内存过小、程序不严密,产生了过多的垃圾。不过不要害怕,下面我们来看看他产生的原因:

导致OutOfMemoryError异常的常见原因有以下几种:

内存中加载的数据量过于庞大,如一次从数据库取出过多数据;

集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;

代码中存在死循环或循环产生过多重复的对象实体;

使用的第三方软件中的BUG;

启动参数内存值设定的过小;

此错误常见的错误提示:

tomcat:java.lang.OutOfMemoryError: PermGen space

tomcat:java.lang.OutOfMemoryError: Java heap space

weblogic:Root cause of ServletException java.lang.OutOfMemoryError

resin:java.lang.OutOfMemoryError

java:java.lang.OutOfMemoryError

解决java.lang.OutOfMemoryError的方法有如下几种:

一、增加jvm的内存大小。方法有: 1)在执行某个class文件时候,可以使用java -Xmx256M aa.class来设置运行aa.class时jvm所允许占用的最大内存为256M。 2)对tomcat容器,可以在启动时对jvm设置内存限度。对tomcat,可以在catalina.bat中添加:

set CATALINA_OPTS=-Xms128M -Xmx256M

set JAVA_OPTS=-Xms128M -Xmx256M

或者把%CATALINA_OPTS%和%JAVA_OPTS%代替为-Xms128M -Xmx256M

3)对resin容器,同样可以在启动时对jvm设置内存限度。在bin文件夹下创建一个startup.bat文件,内容如下:

@echo off

call "httpd.exe"  "-Xms128M" "-Xmx256M"

:end

其中"-Xms128M"为最小内存,"-Xmx256M"为最大内存。

二、 优化程序,释放垃圾。

主要包括避免死循环,应该及时释放种资源:内存, 数据库的各种连接,防止一次载入太多的数据。导致java.lang.OutOfMemoryError的根本原因是程序不健壮。因此,从根本上解决Java内存溢出的唯一方法就是修改程序,及时地释放没用的对象,释放内存空间。 遇到该错误的时候要仔细检查程序,嘿嘿,遇多一次这种问题之后,以后写程序就会小心多了。

Java代码导致OutOfMemoryError错误的解决:

需要重点排查以下几点:

检查代码中是否有死循环或递归调用。

检查是否有大循环重复产生新对象实体。

检查对数据库cha询中,是否有一次获得全部数据的cha询。一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。这个问题比较隐蔽,在上线前,数据库中数据较少,不容易出问题,上线后,数据库中数据多了,一次cha询就有可能引起内存溢出。因此对于数据库cha询尽量采用分页的方式cha询。

检查List、MAP等集合对象是否有使用完后,未清除的问题。List、MAP等集合对象会始终存有对对象的引用,使得这些对象不能被GC回收。

这样解释是不是挺枯燥的,希望可以帮到你。求最佳了,其他问题可以继续联系我。谢谢您了  求最佳

jeb配置java环境_jeb 提示 java help space相关推荐

  1. hive环境搭建提示: java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument

    hive环境搭建提示: java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument SLF4J: A ...

  2. vscode可以配置开发环境c或java。

    ​本篇文章虽然是VsCode挂名,但其实介绍了两款神器: Vscode和Vim, 这两个结合起来,开发效率蹭蹭蹭!!! 之前接触过VsCode但很少用.总感觉写Python不如pycharm香,还得安 ...

  3. vscode java环境_VSCode中Java开发环境的配置方法

    vscode中怎么搭建Java开发环境?下面本篇文章给大家介绍一下VSCode配置Java开发环境的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 配置Java开发环境 主要参 ...

  4. 为什么要配置Java环境变量以及Java环境变量的配置

    一.为什么要配置环境变量? 1. PATH环境变量.作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序.我们需要把 jdk安装目录下的b ...

  5. Jupyter 配置 Java环境,写Java代码,测试成功

    本次简单诉说下怎么通过jupyter安装iJava,写Java代码. 安装Java的不说了 我使用的是Java15 然后去:https://github.com/SpencerPark/IJava/r ...

  6. 如何搭建java环境_vscode搭建java环境

    首先,下载Jdk,Jre进行安装其次,设置环境变量,指向你的java安装目录安装JavaIDE软件,比如MyEclipse,当然MyEclipse自带jdk,可以直接使用,不用配置环境变量,但是最好配 ...

  7. Java环境变量设置-Java

    前年有接触Java,当时王同学还很细心地教我如何配置环境变量,无奈,自己学习了几天之后,就不了了之了..今年感觉也蛮有兴趣,于是又重新拾起来了.    一.先下载jdk 首先我们需要下载java开发工 ...

  8. ubuntu装java环境_Ubuntu安装Java环境

    步骤1:下载jdk 我选择的jdk版本文件: jdk-8u131-linux-x64.tar.gz 步骤2:创建单独的目录 sudo mkdir /usr/local/java 步骤3:将下载的文件复 ...

  9. Java 答疑:为什么修改 Java 环境变量之后 java -version 不变?解决方式汇总

    文章目录 前言 一.错误场景预演 1.1.查看本地旧版本 1.2.java -version 不变问题产生 二.检查新安装 JDK 是否配置正确 2.1.下载并解压目标 JDK 2.2.配置 Java ...

  10. 未检测到Java SDK 环境-Java环境变量设置-Java开发环境搭建

    首先附上最新的Java JDK 的下载地址: http://pan.baidu.com/s/1dEY5fCt  (jdk_8u101_windows_i586_8.0.1010.13) 对于Java环 ...

最新文章

  1. oss One or more of the specified parts could not be found or the specified entity tag
  2. 传统BI为什么注定会失败?
  3. 【通信原理】【实验】实验二:数字基带传输实验(GZHU)
  4. ann matlab,人工神经网络ann及其matlab仿真.ppt
  5. 线程池 调度 java_java调度器和线程池总结
  6. 我的ActiveRecord学习之路(一)
  7. java项目运维手册
  8. 计算机主板巨头,主板主要厂商
  9. php英语大全,学习php编程语言 php常用英语单词
  10. 连接服务器显示句柄无效,句柄无效。 (从HRESULT异常:0x80070006(E_HANDLE))
  11. VS编程,WPF中响应键盘事件、检测键盘键是否按下的一种方法
  12. 短信验证码平台哪家速度快又稳定,推荐下?
  13. MySQL高级篇——锁的概述与案例应用
  14. NO.119 不懂语言代码,超级菜鸟的建站分享(二):界面设置。
  15. 【机器学习】决策树(实战)
  16. 自己整理mysql语句
  17. 实现QQ表情功能(1)
  18. 中科院计算机和理论物理双硕士白,[中科院物理研究所]2005年硕士招生专业及研究方向_跨考网...
  19. LabVIEW学习笔记十三:窗格详解(调整窗格大小时缩放特定对象)
  20. mysql本周 下周下月_sql 统计本周,本月,下周,下月sql语句

热门文章

  1. 电气工程类中文核心期刊
  2. android炫酷动画源码,QQ菜单、瀑布流、二维码源码
  3. 50套3dmax家具建模详细教程 3dmax床建模教程丨3Dmax基础教程3dmax教学3dmax室内设计教程
  4. r430服务器如何用u盘做系统,DELL R430服务器U盘安装操作系统指南.docx
  5. 三星android智能手机usb驱动程序,三星手机安卓USB驱动Samsung USB Driver for Mobile Phones 1.5.51.0...
  6. linux 下查看文件字符编码和转换编码 360doc,Linux 下查看文件字符编码和转换编码...
  7. MAPGIS提示请在“系统设置”里设置好系统库路径(SUVSLIB或者其他)再重新运行程序
  8. linux的php探针使用,php探针在Linux下的安装过程
  9. linux网络对时命令
  10. 硬笔行书字帖3500常用字_2018年【成年人实用硬笔行书】一对一直播培训简介