内存泄露:
内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。即所谓内存泄漏。
相比c++来说,java中一般不去担心内存泄漏的问题,因为java中存在gc机制,gc是垃圾回收的机制,也就是当有些内存区域已成为不可再用的空间是,并且此时CPU也空闲,那么就会启动gc线程来回收垃圾。所以咱们不需要像使用c++那样要使用析构函数来释放资源,也不需要使用delete来销毁对象,如果一个对象不用了, 那么一旦启动垃圾回收机制,该对象就被回收掉了。
值得一提的是,gc机制是线程很弱的,一般情况下是不会调用的,当内存空间将尽时才会调用来回收,
当然可以显式的调用system.gc();方法来回收垃圾,但这个方法功能只是“建议垃圾回收”,也是无法进行强制启动gc机制的,但当cpu不是那么忙碌时,还是很给这个方法面子的。调用gc的时候,一定会调用一个方法,finalize(),这个方法相当于c++中的析构函数,可用于释放某些资源,而且一个对象不会重复调用此方法。
另外,当某些流或其他的类的对象没有及时关闭,可能出现内存一直被占用的情况,这时候一样会出现内存泄漏,
所以在编程时,一定注意,使用流一定要即使关闭,其他的需要关闭的对象也是一样,不能总是寄期望于gc机制,有时候它也是不可靠的。
内存溢出:
内存溢出是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于虚拟机能提供的最大内存。
解决内存溢出的方法:
优化程序
改进算法
增加JVM内存分配
定时执行强制垃圾回收----这是错误的,因为没有方法可以使java强制回收垃圾,这都是自动进行的
内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。即所谓内存泄漏。
相比c++来说,java中一般不去担心内存泄漏的问题,因为java中存在gc机制,gc是垃圾回收的机制,也就是当有些内存区域已成为不可再用的空间是,并且此时CPU也空闲,那么就会启动gc线程来回收垃圾。所以咱们不需要像使用c++那样要使用析构函数来释放资源,也不需要使用delete来销毁对象,如果一个对象不用了, 那么一旦启动垃圾回收机制,该对象就被回收掉了。
值得一提的是,gc机制是线程很弱的,一般情况下是不会调用的,当内存空间将尽时才会调用来回收,
当然可以显式的调用system.gc();方法来回收垃圾,但这个方法功能只是“建议垃圾回收”,也是无法进行强制启动gc机制的,但当cpu不是那么忙碌时,还是很给这个方法面子的。调用gc的时候,一定会调用一个方法,finalize(),这个方法相当于c++中的析构函数,可用于释放某些资源,而且一个对象不会重复调用此方法。
另外,当某些流或其他的类的对象没有及时关闭,可能出现内存一直被占用的情况,这时候一样会出现内存泄漏,
所以在编程时,一定注意,使用流一定要即使关闭,其他的需要关闭的对象也是一样,不能总是寄期望于gc机制,有时候它也是不可靠的。
内存溢出:
内存溢出是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于虚拟机能提供的最大内存。
解决内存溢出的方法:
优化程序
改进算法
增加JVM内存分配
定时执行强制垃圾回收----这是错误的,因为没有方法可以使java强制回收垃圾,这都是自动进行的
发表评论
-
线程总结
2013-03-01 15:08 0什么是线程? 运行在操 ... -
网络总结
2013-03-01 15:07 0网络就是一种连接在一起的计算机。 使用网卡、电缆、集线器等连接 ... -
20130222!
2013-02-22 15:33 842package com.niu.utils; import ... -
正则表达式
2012-10-25 13:57 510String str = "90";//2 ... -
java基础知识
2012-10-22 18:47 533集合类 http://blog.csdn.net/allen_ ... -
java sort
2012-10-22 18:43 806一:Arrays.sort(int[] a ) 二:Coll ... -
详解Java解析XML的四种方法
2012-10-09 13:13 508XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言 ... -
apache common-lang
2012-10-08 19:24 723public static int countMa ... -
Java中对文件的操作
2012-09-27 19:44 509java中提供了io类库,可以轻松的用java实 ... -
StringUtil一些字符串的处理方法
2012-09-24 10:04 833public class StringUtil{ publi ... -
java 创建xml和解析xml
2012-09-24 10:00 521import java.io.FileWriter;impo ... -
map的4中遍历方式(第二种好)
2012-09-24 09:59 614import java.util.HashMap; impor ... -
创建线程两种方式
2012-09-24 09:59 725public class T1 extends Thread ... -
java 文件遍历
2012-09-15 16:43 984/** * 功能: * 1.获取D盘下2级范围所有的文 ... -
经典题目
2012-09-15 16:42 573a. 随机产生2位到10位不等的并且只包含和必须 ... -
entrySet 和keySet
2012-09-15 16:33 713public class MapList { public ...
相关推荐
软件开发 数据库 内存泄露 内存溢出
Java内存溢出和内存泄露共4页.pdf.zip
OOM全称”Out Of Memory”,即内存溢出。 内存溢出已经是软件开发历史上存在了近40年的“老大难”问题。在操作系统上运行各种软件时,软件所需申请的内存远远超出了物理内存所承受的大小,就叫内存溢出。 内存溢出...
Android 内存溢出和内存泄漏的问题 在面试中,经常有面试官会问“你知道什么是内存溢出?什么是内存泄漏?怎么避免?”通过这篇文章,你可以回答出来了。 内存溢出 (OOM)是指程序在申请内存时,没有足够的内存空间...
一个Qt内存溢出检测小工具,(需要VLD支持)。
java内存泄露、溢出检查方法和工具。 步骤: 1,使用linux命令生存堆栈文件 2,用MemoryAnalyzer.exe工具打开 3,根据工具生成的饼状图可以清晰的找出内存泄漏源
JAVA内存溢出问题总结
所以程序中的内存泄漏我的理解更多是:由于程序的编写错误暴漏出一些 开口 ,导致一些对象 进入 这写开口,最终 导致相关问题 ,进一步说白了,程序有漏洞,不当的调用就会出问题 内存泄漏说明的是这样一种...
处理bitmap内存溢出问题
该文档整合了网上所有的关于描述was(webSphere)下生成许多phd文件的...产生该类文件的原因包括JVM设置的最小内存太小,以至于内存溢出,还有就是程序漏洞,使得JVM内存溢出,文档中叶介绍了websphere的检测工具的使用
spring mvc重定向导致内存溢出解决方案
有的时候,我们需要一次查询很多的数据,或者是说每次查询的数据量都很大,都有可能早晨内存溢出的情况,所以我们今天分别针对三个数据库来探讨如何避免这一问题。
JVisualVM简介与内存泄漏实战分析,如何分析内存溢出,定位内存溢出问题
1.常发性内存泄漏: 发生内存泄漏的代码会被多次执行到,每次被执行的时候都会导致一块内存泄漏 2.偶发性内存泄漏: 发生内存泄漏的代码只有在某些特定环境或操作过程下才会发生。常发性和偶发性是相对的。对于特定的...
主要介绍了内存溢出和内存泄漏的详解及区别的相关资料,需要的朋友可以参考下
使用BitmapFactory加载图片时,如果图片过大可能引起OutOfmemory溢出的问题。解决办法。
主要从以下几部分来说明,关于内存和内存泄露、溢出的概念,区分内存泄露和内存溢出;内存的区域划分,了解GC回收机制;重点关注如何去监控和发现内存问题;此外分析出问题还要如何解决内存问题。下面就开始本篇的...
android 的内存溢出和泄露问题. 内存溢出就是分配的内存不足以放下数据项序列。如在一个域中输入的数据超过了它的要求就会引发数据溢出问题,多余的数据就可以作为指令在计算机上运行。 内存泄漏是指在堆上分配...
主要介绍了Python内存泄漏和内存溢出的解决方案,帮助大家维护后台进程,感兴趣的朋友可以了解下
uniapp项目体量过大时,打包H5会报错, - process out of memory 解决放案: 替换HBuildX内置\HBuilderX\plugins\node\node.exe版本 添加\HBuilderX\plugins\compile-node-sass\node_modules\node-sass-china\...