• 堆内存不足是最常见的 OOM 原因之一,抛出的错误信息是“java.lang.OutOfMemoryError:Java heap space”,原因可能千奇百怪,例如,可能存在内存泄漏问题;也很有可能就是堆的大小不合理,比如我们要处理比较可观的数据量,但是没有显式指定 JVM 堆大小或者指定数值偏小;或者出现 JVM 处理引用不及时,导致堆积起来,内存无法释放等。
  • 虚拟机栈和本地方法栈,这里要稍微复杂一点。如果我们写一段程序不断的进行递归调用,而且没有退出条件,就会导致不断地进行压栈。类似这种情况,JVM 实际会抛出StackOverFlowError;当然,如果 JVM 试图去扩展栈空间的的时候失败,则会抛出OutOfMemoryError。
  • 对于老版本的 Oracle JDK,因为永久代的大小是有限的,并且 JVM 对永久代垃圾回收(如,常量池回收、卸载不再需要的类型)非常不积极,所以当我们不断添加新类型的时候,永久代出现OutOfMemoryError 也非常多见,尤其是在运行时存在大量动态类型生成的场合;类似 Intern 字符串缓存占用太多空间,也会导致 OOM 问题。对应的异常信息,会标记出来和永久代相关:“java.lang.OutOfMemoryError: PermGenspace

造成OOM的原因有哪几种?相关推荐

  1. 九种 OOM 常见原因及解决方案(IT枫斗者)

    九种 OOM 常见原因及解决方案(IT枫斗者) 什么是OOM? OOM,全称"Out Of Memory",翻译成中文就是"内存用完了",来源于java.lan ...

  2. 高手总结的9种 OOM 常见原因及解决方案

    高手总结的9种 OOM 常见原因及解决方案 [强制]线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这样 的处理方式让写的同学更加明确线程池的运行 ...

  3. php7应用程序无法启动,window_win7系统打开软件提示应用程序无法启动的故障原因分析及2种解决方法,      nbs - phpStudy...

    win7系统打开软件提示应用程序无法启动的故障原因分析及2种解决方法 win7系统打开软件提示应用程序无法启动,因为应用程序的并行配置不正确,具体问题现象如下图所示: 故障原因分析: 一个可能是Win ...

  4. 一般报java.lang.NullPointerException的原因有以下几种

    一般报java.lang.NullPointerException的原因有以下几种:  ·字符串变量未初始化:  ·接口类型的对象没有用具体的类初始化,比如:  List lt; 会报错  List ...

  5. 什么是oom,常见造成oom的原因,及解决方法

    内存溢出 造成程序卡顿未响应 一:什么是oom oom就是我们常说的Out of Memory内存溢出,它是指需要的内存空间大于系统分配的内存空间,oom后果就是项目程序crash; Hprof He ...

  6. 计算机登陆用户显示黑屏,win7系统电脑开机输入登录账号密码后出现黑屏的原因分析及两种解决方法...

    一位用户说win7开机输入登录账号密码后出现黑屏,这是怎么回事呢?这种情况怎么解决呢?下面脚本之家的小编就带来win7系统电脑开机输入登录账号密码后出现黑屏的原因分析及解决方法,一起来看看吧. 故障原 ...

  7. javaheapspace解决方案_高手总结的9种 OOM 常见原因及解决方案

    当 JVM 内存严重不足时,就会抛出 java.lang.OutOfMemoryError 错误.本文总结了常见的 OOM 原因及其解决方法,如下图所示.如有遗漏或错误,欢迎补充指正. 1.Java ...

  8. 记一次 OOM 的原因和处理 出现大量 close_wait,项目无法访问 activeMq和 poi 出现的 OOM

    大家好,我是烤鸭: 记一次项目无法访问的事件和处理.由于某个模块每隔几天就会出现无法访问,目前的最简单粗暴的方法就是重启. 1. 现象 项目内日志打印正常,经过dubbo的rpc服务和接口调用正常.h ...

  9. 图片不能及时显示_电脑主机正常运行,显示器黑屏,有六种原因,前三种方法要掌握!...

    电脑故障分为硬件故障与软件故障,硬件故障指的是硬件出现了问题,软件故障指的是系统出现了问题,无论是硬件故障还是软件故障,都会影响电脑的使用,我们经常会遇到的电脑故障就是电脑蓝屏.电脑黑屏.电脑卡顿.电 ...

最新文章

  1. shell [] [[ ]] {}区别
  2. bat 域 本机管理员密码_域渗透——Local Administrator Password Solution
  3. jenkins linux 配置文件,Jenkins 部署打包文件 并通过SSH上传到 linux服务器
  4. C# 控制台或者winform程序开启http的监听状态
  5. 卷积层和池化层的计算公式的区别
  6. array.prototype.map()如何工作
  7. VB讲课笔记09:过程
  8. 【报告分享】2019中国硬科技发展白皮书(195页官方版).pdf(附下载链接)
  9. web前端:技术提升必学的HTML用法
  10. RemObjects Elements Crack,用途软件开发工具链
  11. Android系统证书 platform.x509.pem platform.pk8转换为.keystore文件
  12. php工程师绩效考核表_如何对程序员绩效考核?
  13. Java中beimage_GitHub - beconf/ImageBlurring: Android 中通过 Java 与 JNI 分别进行图片模糊;并且进行比较其运算速度。...
  14. Python爬虫原理与简单示例代码
  15. PrettyTable | 美丽的表格
  16. 【Rosalind】Counting Point Mutations
  17. 用友iuap低代码开发驱动商业创新
  18. oracle代言人,好莱坞巨星布鲁斯南与欧琳正式签约成为代言人
  19. 微营销怎么加人,教你快速引流8大招数
  20. html背景颜色上边白下边红,HTML中,网页正文的默认颜色是红色,背景颜色默认是白色。...

热门文章

  1. CDays-3 习题二 (字典及文件读取练习)及相关内容解析。Python 基础教程
  2. 基于WF4的新平台-流程模式-(9)表单路由启动传入
  3. Silverlight 参考: Path的Data生成归总
  4. Oracle中日期和时间字段的日常使用
  5. nio的优势_BIO、NIO、AIO 介绍和适用场景分析
  6. 微软SQL 报表服务的研究
  7. Redis(三)、支持数据类型及常用操作命令
  8. 限制UI只能在屏幕内移动(放大或缩小屏幕同样适用)
  9. nodejs 二进制安装
  10. 日本研发高精度诊疗感应器,或颠覆疾病诊疗