解决OOM:JVM内存不足问题

 更新时间:2025年06月20日 10:22:27   作者:十九本命  
这篇文章主要介绍了解决OOM:JVM内存不足问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

在运行项目的时候,代码maven等正确的情况下,项目跑不起来报内存不足的问题,很有可能就是OOM问题!

什么是OOM?

“Out Of Memory”=“内存不足”

官方回答:

  • 当 JVM 因为没有足够的内存来为对象分配空间,并且 垃圾回收器 也已经没有空间可供回收时,就会抛出这个错误。(注:非exception,已经严重到不足以被应用处理)。

举例:

  • 就是你设置的项目需要10内存而你只有5,所以报OOM问题。

知识点插入:

  • 内存泄露:申请使用完的内存没有释放,导致虚拟机不能再次使用该内存,此时这段内存就泄露了,因为申请者不用了,而又不能被虚拟机分配给别人用。
  • 内存溢出:申请的内存超出了JVM能提供的内存大小,此时称之为溢出。

OOM出现的原因

  • 分配过少:JVM 初始化内存小,业务使用了大量内存;或者不同 JVM 区域分配内存不合理
  • 内存泄漏:某一个对象被频繁申请,不用了之后却没有被释放,发生内存泄漏,导致内存耗尽

OOM的解决方法

直接的解决办法是将setting->Compile中属性的值调大,我这里是调到了3000

合理设置对外内存大小:

根据应用的实际需求调整-XX:MaxDirectMemorySize参数,给予足够的直接内存空间。(亲测:修改错误IDEA会无法启动,建议使用第一种♥️ )

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java代理模式之静态代理与动态代理的区别及优缺点

    Java代理模式之静态代理与动态代理的区别及优缺点

    代理模式是一种常用的设计模式,它允许通过引入一个代理对象来控制对目标对象的访问,在Java中,代理模式被广泛应用,它可以提供额外的功能,如权限检查、缓存、日志记录等,本文将介绍静态代理与动态代理的区别及优缺点,需要的朋友可以参考下
    2023-06-06
  • 配置pom.xml用maven打包java工程的方法(推荐)

    配置pom.xml用maven打包java工程的方法(推荐)

    下面小编就为大家带来一篇配置pom.xml用maven打包java工程的方法(推荐)。小编觉得挺不错的, 现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • 关于TreeMap自定义排序规则的两种方式

    关于TreeMap自定义排序规则的两种方式

    这篇文章主要介绍了关于TreeMap自定义排序规则的两种方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • Java SpringBoot使用guava过滤器

    Java SpringBoot使用guava过滤器

    这篇文章主要介绍了Java SpringBoot使用guava过滤器,文章围绕主题展开详细的内容戒杀,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • Java8函数式接口Predicate用法示例详解

    Java8函数式接口Predicate用法示例详解

    这篇文章主要为大家介绍了Java8函数式接口Predicate用法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • 深入浅出讲解Spring框架中AOP及动态代理的应用

    深入浅出讲解Spring框架中AOP及动态代理的应用

    在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术
    2022-03-03
  • seata springcloud整合教程与遇到的坑

    seata springcloud整合教程与遇到的坑

    seata 是alibaba 出的一款分布式事务管理器,他有侵入性小,实现简单等特点。这篇文章主要介绍了seata springcloud整合教程与遇到的坑,需要的朋友可以参考下
    2021-07-07
  • Spring的RedisTemplate存储的key和value有特殊字符的处理

    Spring的RedisTemplate存储的key和value有特殊字符的处理

    这篇文章主要介绍了Spring的RedisTemplate存储的key和value有特殊字符的处理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • 深入了解Java中Cookie和Session的区别

    深入了解Java中Cookie和Session的区别

    会话跟踪是Web程序中常用的技术,用来跟踪用户的整个会话,常用的会话跟踪技术是Cookie与Session,本文就详细的介绍一下Java中Cookie和Session的区别,感兴趣的可以了解一下
    2023-06-06
  • Spring Boot 整合 ShedLock 处理定时任务重复执行的问题小结

    Spring Boot 整合 ShedLock 处理定时任务重复执行的问题小结

    ShedLock是解决分布式系统中定时任务重复执行问题的Java库,通过在数据库中加锁,确保只有一个节点在指定时间执行任务,它与SpringScheduler、Quartz等框架结合使用,本文介绍Spring Boot 整合 ShedLock 处理定时任务重复执行的问题,感兴趣的朋友一起看看吧
    2025-02-02

最新评论