内存溢出(outofmemory)一般理解为内存不足通常在运行大型软件或游戏时,软件或游戏所需的内存远远超过你主机安装的内存大小,称为内存溢出。。此时软件或游戏无法运行,系统会提示内存溢出有时软件会自动关闭,重新启动电脑或软件后,部分内存被释放,软件即可正常运行。
内存泄漏(MemoryLeak)是指程序中动态分配的堆内存没有释放或者由于某种原因无法释放,导致系统内存浪费,减慢程序速度甚至导致系统崩溃。结果。
内存不足溢出是指程序申请内存时,没有足够的内存空间可以使用,出现内存不足的情况,比如申请了一个整数,但是可以长期保存,那么就是内存溢出了。
内存泄漏是指程序申请内存后无法释放所分配的内存空间,内存泄漏的危害可以忽略不计,但内存泄漏积累的严重后果迟早会被占用。
内存最终会耗尽内存!
原因:
1。加载到内存中的数据量非常大,比如一次从数据库中取出很多数据;
2Collection类中存在对该对象的引用,并且没有被获取使用后清除,因此JVM无法回收
3或者循环创建了太多重复的对象实体;
4.使用的第三方软件错误;
5.启动参数内存值设置太小
解决办法:
1)处理部分I/O流的数据传输时,尝试最后关闭I/O流
2)处理下载的图片时,使用BitmapFactory。选项。设置insameplesize()方法对图片进行压缩,以减少资源占用;下面专门写一下图像压缩;
3)还可以通过减少图像像素来减少占用的内存
4)资源回收:Bitmap回收。()bitmap=null;
5)尽量使用全局变量,避免创建新对象
上一篇:内存泄漏与内存溢出的区别
下一篇:内存泄漏和内存溢出的场景