2 xiaojiu   xiaoJiu___ 于 2016.03.05 19:10 提问

求指教,OOM有哪些情况,又该如何处理

求大神指教,内存溢出有哪些情况,又该如何处理??????????

2个回答

caozhy
caozhy   Ds   Rxr 2016.03.05 21:06

(1)内存不足,你申请内存,系统中可用内存不足,没法分配,你需要优化算法
(2)内存泄漏,使用了内存,没有回收,特别是C++等需要手工释放的语言写的程序。表现为程序运行时间越长,内存越少,直到崩溃
(3)堆栈溢出,递归深度过大,或者无限递归,也可能是算法太复杂,需要优化
(4)内存越界,访问数组,下标越界,导致访问异常

lx624909677
lx624909677   Ds   Rxr 2016.03.07 16:51

OOM就是大量使用内存的情况,比如你加载1万个图片到内存,这个时候就出现OOM了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
JVM中OOM和SOF的产生
学习《深入理解Java虚拟机 JVM高级特性域最佳实践》,学习到了JVM中常见的OutOfMemory和StackOverFlow产生的机理,感觉非常有用。 1.平时代码运行时遇到这两种错误后就可以根据具体情况去适时地调整JVM参数来处理问题 2.平时写代码的时候也会多加注意,不要让代码产生这两种异常 下面就记录下,当作学习笔记。 首先必须了解JVM运行时数据区域 方法区  用
8. Excption与Error包结构。OOM你遇到过哪些情况,SOF你遇到过哪些情况。
Java异常架构图其中:Throwable是 Java 语言中所有错误或异常的超类。 Throwable包含两个子类: Error 和 Exception 。它们通常用于指示发生了异常情况。 Throwable包含了其线程创建时线程执行堆栈的快照,它提供了printStackTrace()等接口用于获取堆栈跟踪数据等信息。Java将可抛出(Throwable)的结构分为三种类型: 被检查的异常(C
对JVM中可能出现内存溢出(OOM)情况的整理
前一段时间看了一本书《深入理解java虚拟机》,对JVM有了一定的认识... 这篇文章主要是对java程序运行在JVM上可能产生内存溢出(OOM)的情况进行整理... 在这里引言书中作者一句话 “希望读者在工作中遇到实际的内存溢出异常时,能根据异常的信息快速判断是哪个区域的内存溢出,知道什么样的代码可能会导致这些区域内存溢出,以及出现这些异常后该如何 处理” 所以,
Excption与Error包结构。OOM你遇到过哪些情况,SOF你遇到过哪些情况。
原文地址:http://www.mamicode.com/info-detail-1091344.html Java异常架构图 1. Throwable  Throwable是 Java 语言中所有错误或异常的超类。  Throwable包含两个子类: Error 和 Exception 。它们通常用于指示发生了异常情况。  Throwable包含了其线程创建时线程执行堆
Excption与Error包结构。OOM你遇到过哪些情况,SOF你遇到过哪些情况
一道很经典的Java开发面试题,答案写的很全面,大部分内容都来自《深入理解Java虚拟机--JVM高级特性与最佳实践》,很推荐大家看这本书,在看这本书的时候,赞叹作者的写作功底,深入浅出!但是很多一开始看这本书的人感觉并不知道在讲什么,很推荐大家在看书的同时,多多上网查资料,看看网友们的总结,多多实践!会帮助你理解JVM. 原文地址:http://www.mamicode.com/info-
OOM的产生原因及解决方法
OOM的产生原因及解决方法 内存溢出(Out Of Memory)也就是说内存占有量超过了VM所分配的最大 出现OOM的原因 加载对象过大相应资源过多,来不及释放 如何解决 在内存引用上做些处理,常用的有软引用、强化引用、弱引用在内存中加载图片时直接在内存中作处理,如边界压缩动态回收内存优化Dalvik虚拟机的堆内存分配自定义堆内存大小
8. OOM你遇到过哪些情况,SOF你遇到过哪些情况。
学习《深入理解Java虚拟机 JVM高级特性域最佳实践》,学习到了JVM中常见的OutOfMemory和StackOverFlow产生的机理,感觉非常有用。1.平时代码运行时遇到这两种错误后就可以根据具体情况去适时地调整JVM参数来处理问题2.平时写代码的时候也会多加注意,不要让代码产生这两种异常下面就记录下,当作学习笔记。首先必须了解JVM运行时数据区域方法区 用于存储已被JVM加载的类信息,常...
描述下jvm的gc机制,常用的jvm调优方法,oom如何产生,如何处理oom 问题?
GC机制:分配对象使用new关键字;释放对象时,只要将对象所有引用赋值为null,让程序不能够再访问到这个对象,我们称该对象为"不可达的".GC 将负责回收所有"不可达"对象的内存空间。 jvm 调优方法: 1.最基本的建议就是尽早释放无用对象的引用。 大多数程序员在使用临时变量的时候,都是让引用变量在退出活动域(scope)后,自动设置为null.我们在使用这种方式时候,必须特别注意一些复杂的对
Java内存各部分OOM出现原因及解决办法
一,jvm内存区域 1,         程序计数器 一块很小的内存空间,作用是当前线程所执行的字节码的行号指示器。 2,         java栈 与程序计数器一样,java栈(虚拟机栈)也是线程私有的,其生命周期与线程相同。通常存放基本数据类型,对象引用(一个指向对象起始地址的引用指针或一个代表对象的句柄),reeturnAddress类型(指向一条字节码指令的地址) 栈区
什么情况导致OOM问题及如何优化
一、前期基础知识储备(1)OOM定义—out of memory,内存溢出,一个程序中,已经不需要使用某个对象,但是因为仍然有引用指向它垃圾回收器就无法回收它,当该对象占用的内存无法被回收时,就容易造成内存泄露。多个内存泄漏最终会导致内存溢出,即OOM。(内存泄漏和内存溢出两者之间的关系,可参考笔者之前的文章《Android中内存泄漏详解》)(2)Java内存概念、内存泄漏相关知识点都可以参考笔者...