问题描述:

  1、系统在执行某个操作时,必现OOM异常。

问题的定位:

  1、排查代码,未发现问题。

  2、在虚拟机启动时,添加参数:-XX:+HeapDumpOnOutOfMemoryError(当发生oom异常时,生成dump文件),得到异常时的dump文件。

  3、使用 jvisualvm 分析dump文件。发现某个pojo存在很多个实例对象,再定位到具体抛出异常的地方,发现是在获取数据库数据时,没有使用分页参数,导致 select * from tableName 这样的低级错误发生。

问题的解决:

  显而易见。

由该案例得到的总结:

  1、由于开发人员的不规范编码,导致的问题。

    比如说:变量的命名问题,变量名称应该顾名思义。

    因此:强制推行全员使用《阿里java开发规范》进行代码的检查与开发。

案例(1)-- OOM异常的更多相关文章

  1. OOM异常产生的原因和处理方法

    一般而言,android中常见的原因主要有以下几个: 1.数据库的cursor没有关闭. 2.构造adapter没有使用缓存contentview. 3.调用registerReceiver()后未调 ...

  2. java虚拟机(一)——内存管理机制与OOM异常

    一  java内存区域与内存溢出异常(OOM) 1)运行时数据区域划分        1.程序计数器(Program Conuter Register) 程序计数器是一块较小的内存空间,它是当前线程执 ...

  3. Android OOM异常解决方案

    一,什么是OOM异常: OOM(out of Memory)即内存溢出异常,也就是说内存占有量超过了VM所分配的最大,导致应用程序异常终止: 二,为什么会产生OOM异常呢? OOM异常是Android ...

  4. OOM异常的4种可能分析

    OOM异常:OutOfMemoryError 1.JAVA堆溢出 JAVA堆用于存储对象实例,只要不断的创建对象,并且保证GC Roots到这些对象之间有路径可以来避免垃圾回收机制清除这些对象,那么在 ...

  5. OOM异常 Java内存溢出

    1.OutOfMemoryError 抛出异常后先确定是堆溢出还是栈溢出 堆溢出:java.lang.OutOfMemoryError: Java heap space 堆出现OOM(标志就是Java ...

  6. JVM探究之 —— OOM异常

    在Java虚拟机规范的描述中,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError(下文称OOM)异常的可能.本节探究主要基于jdk1.8的内存结构. 1. Jav ...

  7. JVM OOM异常会导致JVM退出吗?

    出处:  https://mp.weixin.qq.com/s/8j8YTcr2qhVActLGzOqe7Q  https://blog.csdn.net/h2604396739/article/de ...

  8. OOM异常的发生原因

    一,jvm内存区域 1,程序计数器 一块很小的内存空间,作用是当前线程所执行的字节码的行号指示器. 2,java栈 与程序计数器一样,java栈(虚拟机栈)也是线程私有的,其生命周期与线程相同.通常存 ...

  9. 真的可惜,四面阿里,结果我被JVM垃圾回收机制与 OOM异常卡住了

    前言 为什么需要垃圾回收 首先我们来聊聊为什么会需要垃圾回收,假设我们不进行垃圾回收会造成什么后果,我们举一个简单的例子 我们住在一个房子里面,我们每天都在里面生活,然后垃圾都丢在房子里面,又不打扫, ...

随机推荐

  1. BAT 电脑名 用户名

    @echo offecho 当前盘符:%~d0echo 当前登陆用户:%username%echo 当前盘符和路径:%~dp0echo 当前盘符和路径的短文件名格式:%~sdp0echo 当前批处理全 ...

  2. Makefile教程(绝对经典,所有问题看这一篇足够了)【转】

    该篇文章为转载,是对原作者系列文章的总汇加上标注. 支持原创,请移步陈浩大神博客: http://blog.csdn.net/haoel/article/details/2886 makefile很重 ...

  3. Looper: Looper,Handler,MessageQueue三者之间的联系

    在Android中每个应用的UI线程是被保护的,不能在UI线程中进行耗时的操作,其他的子线程也不能直接进行UI操作.为了达到这个目的Android设计了handler Looper这个系统框架,And ...

  4. openresty开发系列30--openresty中使用http模块

    OpenResty默认没有提供Http客户端,需要使用第三方提供的插件 我们可以从github上搜索相应的客户端,比如https://github.com/pintsized/lua-resty-ht ...

  5. QCamera检测摄像头

    The QCamera class provides interface for system camera devices. More... Header: #include <QCamera ...

  6. Delphi XE6 使用定时器或者线程解决程序界面无响应问题

    ---恢复内容开始--- 介绍 在手机应用上,我们不应该使用速度慢的代码,当然我们在桌面程序上也应该避免这个,当手机应用长时间没有相应的时候,程序会提示“程序没响应,是否关闭”的提示,这个非常不好,所 ...

  7. JS正则匹配邮箱格式

    观察一些邮箱格式,有些邮箱格式简单,有些复杂,在网上找了个邮箱的正则表达式,分析一下邮箱的规则.该表达式:/^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/ 拆分:[1 ...

  8. html的输出&,空格,大小于号

    最近定做安装程序,因为这次定做名字里有&符号,用微软的txt文本打开配置文件,在配置文件里修改了名称,名称在文本里显示正常,但是定做出来后,发现&符号变成了_下划线,在本来的& ...

  9. 未找到路径“ ”的控制器或该控制器未实现 IController。

    未找到路径“/Platform/t_spay_sub_mchno/Index”的控制器或该控制器未实现 IController. 从SVN复制了份代码修改,然后找不到控制器和页面.在项目属性-WEB- ...

  10. MySQL语句增加字段,修改字段名,修改类型,修改默认值

    原文地址:https://blog.csdn.net/kimgoo/article/details/54630257 增加字段:alter table 表名 ADD 字段 类型 约束 [默认值 注释] ...