问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何解决JAVA 内存溢出的问题、

发布网友 发布时间:2022-04-19 13:05

我来回答

4个回答

热心网友 时间:2022-04-14 05:58

JProfiler工具主要用于检查和跟踪系统(限于Java开发的)的性能。JProfiler可以通过时时的监控系统的内存使用情况,随时监视垃圾回收,线程运行状况等手段,从而很好的监视JVM运行情况及其性能。1. 应用服务器内存长期不合理占用,内存经常处于高位占用,很难回收到低位; 2. 应用服务器极为不稳定,几乎每两天重新启动一次,有时甚至每天重新启动一次; 3. 应用服务器经常做Full GC(Garbage Collection),而且时间很长,大约需要30-40秒,应用服务器在做Full GC的时候是不响应客户的交易请求的,非常影响系统性能。 因为开发环境和产品环境会有不同,导致该问题发生有时会在产品环境中发生,通常可以使用工具跟踪系统的内存使用情况,在有些个别情况下或许某个时刻确实是使用了大量内存导致out of memory,这时应继续跟踪看接下来是否会有下降,如果一直居高不下这肯定就因为程序的原因导致内存泄漏。五、不健壮代码的特征及解决办法1、尽早释放无用对象的引用。好的办法是使用临时变量的时候,让引用变量在退出活动域后,自动设置为null,暗示垃圾收集器来收集该对象,防止发生内存泄露。对于仍然有指针指向的实例,jvm就不会回收该资源,因为垃圾回收会将值为null的对象作为垃圾,提高GC回收机制效率;2、我们的程序里不可避免大量使用字符串处理,避免使用String,应大量使用StringBuffer,每一个String对象都得独立占用内存一块区域;String str = "aaa"; String str2 = "bbb"; String str3 = str + str2;//假如执行此次之后str ,str2以后再不被调用,那它就会被放在内存中等待Java的gc去回收,程序内过多的出现这样的情况就会报上面的那个错误,建议在使用字符串时能使用StringBuffer就不要用String,这样可以省不少开销; 3、尽量少用静态变量,因为静态变量是全局的,GC不会回收的;4、避免集中创建对象尤其是大对象,JVM会突然需要大量内存,这时必然会触发GC优化系统内存环境;显示的声明数组空间,而且申请数量还极大。这是一个案例想定供大家警戒使用jspsmartUpload作文件上传,运行过程中经常出现java.outofMemoryError的错误,检查之后发现问题:组件里的代码m_totalBytes = m_request.getContentLength();m_binArray = new byte[m_totalBytes];问题原因是totalBytes这个变量得到的数极大,导致该数组分配了很多内存空间,而且该数组不能及时释放。解决办法只能换一种更合适的办法,至少是不会引发outofMemoryError的方式解决。参考: http://bbs.xml.org.cn/blog/more.asp?name=hongrui&id=37475、尽量运用对象池技术以提高系统性能;生命周期长的对象拥有生命周期短的对象时容易引发内存泄漏,例如大集合对象拥有大数据量的业务对象的时候,可以考虑分块进行处理,然后解决一块释放一块的策略。6、不要在经常调用的方法中创建对象,尤其是忌讳在循环中创建对象。可以适当的使用hashtable,vector 创建一组对象容器,然后从容器中去取那些对象,而不用每次new之后又丢弃7、一般都是发生在开启大型文件或跟数据库一次拿了太多的数据,造成 Out Of Memory Error 的状况,这时就大概要计算一下数据量的最大值是多少,并且设定所需最小及最大的内存空间值。

热心网友 时间:2022-04-14 07:16

使用Java中的垃圾回收器即可回收内存中的垃圾,以此来节约内存。一步到位即可解决问题,方法是使用System类中的gc(),使用格式为:System.gc();

热心网友 时间:2022-04-14 08:51

可以监控一下你的程序到底是什么原因造成的内存溢出,然后修改导致溢出的程序算法应该可以解决。或者手动执行垃圾回收。使用弱引用类型也可以

热心网友 时间:2022-04-14 10:59

不需要解决啊..Java中存在Gc垃圾回收...
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
远得要命的爱情丁菲是谁演的 远的要命的爱情里的乔佳影是谁演的 远得要命的爱情乔佳影是什么角色 问。。我在厦门办的银行卡回江西可以用吗? 远得要命的爱情中的乔佳影是个怎样的人 厦门农信社的公告出来了,想问一下银行合同制和劳务派遣和正式工的区别... 厦门的信用社银联卡到南宁能不能用?要不要手续费? 泉州农信社年前新办的卡,存了钱,银行说三个工作日后才能动这个钱,为什 ... ...女鞋的话 是不是必须直通车 我们鞋子都是20---50鞋子利润低 直通车... 拼多多直通车200红包(拼多多直通车每天烧1000) java怎么检查程序内存溢出 java内存溢出的问题如何排查 java.lang内存溢出怎么解决 java内存溢出怎么解 java内存溢出怎么解决 Java内存溢出的解决方案都有哪些 Java程序内存溢出怎么修改? 飞机上如果手机开飞行模式可以玩吗? 手机怎么重新设置默认桌面, 怎样更改手机桌面? 如何把手机桌面设置成视频桌面 怎么把手机设置添加到桌面 vivo手机怎么设置手机桌面图标? 手机如何设置主桌面 vivo手机怎么设置手机桌面图标 怎么设置手机桌面 如何设置手机桌面 为什么我的QQ上不去了 qq上开通什么比较好 QQ上出现的问题该怎么解决 Java常见的几种内存溢出 Java内存溢出,求解决 如何检查和解决java虚拟机内存溢出的问题 java内存溢出 怎么写 java内存溢出 java内存溢出与内存泄漏怎么解决 java程序堆内存溢出错误如何解决? 我的世界mod服,java内存溢出如何解决? java程序内存溢出一般什么原因 JBuilder 9 运行JAVA程序,内存溢出了,如何解决? java栈内存溢出怎么产生 红米note4解锁密码忘了怎样解除?求解 谢谢大师们 电力猫怎么配置 电力猫怎么设置? 电力猫怎么用怎么设置 tplink路由器电力猫怎么设置 tenda 有线电力猫 怎么设置 电力猫如何配置 电力猫怎么设置 电力猫连接路由器有几种设置方法