OOM

Out Of Memory

java.lang.OutOfMemoryError 

      Thrown when the Java Virtual Machine cannot allocate an object because it is out of memory, and no more memory could be made available by the garbage collector.

       当JVM因为没有足够的内存来为对象分配空间并且垃圾回收器也没有空间可回收了,就会抛出这个error

 

OOM原因:

  1. 分配的少了:如虚拟机本身可使用内存太少了(通过启动时的VM参数指定)
  2. 应用用的太多了,并且用完没释放,浪费了。此时就会造成内存泄漏或者内存溢出。

内存泄漏:申请使用完的内存没有释放,导致虚拟机不能再次使用该内存,此时这段内存就泄漏了,因为申请着不用了,而又不能被虚拟机分配给别人用。

内存溢出:申请的内存超出了JVM能提供的内存大小,此时称为溢出

 

OOM类型:

java.lang.OutOfMemoryError: Java heap space

堆内存溢出。

原因:1.是否存在内存泄漏(用工具查看泄露对象到GC Roots的引用链)2,若不是内存泄漏 调大VM的堆参数

做法:增加JVM内存、查看GC日志有没有发生GC、若年轻代或老年代空间不足,可以设置参数、减少申请数据量

 

 

堆内存溢出

虚拟机栈和本地方法栈溢出

运行时常量池溢出

本机直接内存溢出

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值