java需要清除对象内存吗? 我接手一个项目,里面使用了大量的vector,最近几个人测试BUG经常发现内存溢出,数据库连接池正常,有人说需要释放对象内存,如:Vector。java有垃圾回收机制,需要自己释放对象内存吗?vector = null?这样释放对象? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以自己手动清理=null并没有清理内存 手动清理怎么弄?重启weblogic?不可能一直都有人看着 我觉得如果vector里的对象是通过自己管理的,还是需要做内存清理的。把vector里不需要的元素设为null。 手动清理我觉得是把vector里不需要的对象设为null,还是有虚拟机自行清理。例如,程序只对index进行管理(vector里的对象需不需要),那么其实index范围外的对象并没有被虚拟机进行回收,因为他们没有变为null。 weblogic里有定时垃圾回收的设置 最近几个人测试BUG经常发现内存溢出,我觉得你们是否已经确定内存溢出的原因就是vector? 要把vector里不用的对象引用赋值为null 没必要,java虚拟机有自动清楚垃圾的机制!不过,也可手动清除 把语句块里声明的变量设置为 null 是没必要的。如果是容器的话,如 Vector、Map 需要的话可以清空容器的内容。 等于null就会自动清空的只是不是马上清或者你手动运行一下垃圾回收不过一般溢出是代码的问题回收内存不是解决问题的根本办法 JVM会自动回收的,和weblogic没关系-------------------------------------------------爱问易 - 非官方技术支持互助平台http://www.iaskengineer.com 如果确定连接池正常,内存溢出要先看GC输出-------------------------------------------------爱问易 - 非官方技术支持互助平台http://www.iaskengineer.com java的垃圾回收是虚拟机自己开一个线程监视的,我们不用管vector = null只是提醒java虚拟机该回收了,但是真正的回收时机并不确定楼主可以加大虚拟机内存试试,如果嗨存在内存溢出就是泄露了,这个只能慢慢查,一模块一模块的查 内存溢出也可能是因为在连接数据库资源的时候,使用结束之后,并没有关掉(如使用close方法)而导致空间浪费,并不是释放内存的问题,你应该检查代码,把该关掉的相应连接一定要关掉,才能保证空间的高效使用~ 可以把内存参数调大一些, vector 里面没有用的东西 remove 掉也能 减少内存 关于内存溢出,看下这个: Java内存溢出的详细解决方案http://wobuxiaole.iteye.com/blog/408470 java看不到内存。不过可以手动把代码写的更好点:退出前把集合里面的东西清空,挨个=null设置更好的数据结构。 JAVA里面完全没必要,指向NULL也不是释放内存,只是将对象指向一个空指针而已,而以前的内存还在,JVM会自动回收。JAVA里面需要释放的东西主要是文件读写句柄,数据库连接,或其他句柄 清内存一般情况下不用吧,garbage collector 可以清。觉得需要可以调finalize()方法通知回收。但也是回收器自己定什么时候来回收。 给点意见,不知道有没帮助.1.GC一直在工作,一般不要去手动的回收垃圾内存。2.对于不用的对象及时的值为null,GC不会马上回收,但会提高回收的概率。3.既然你的程序测试多次有BUG,内存溢出,建议你优化程序。 数据类型不一致: 应为 NUMBER, 但却获得 BINARY 求一段js. javaweb开发如何实现导入导出功能? JSF 页面之间传递 中文乱码??? 怎么样把上传流存到数据中 再从数据库中取出来 帮帮忙谢谢 用eclipse开发jsp可是建不了项目 一个概念性的问题 大哥哥们,帮帮我,数据库问题~~~~~~~~在线等 急急急 请问如何用jsp得到防问客户的IP地址呀?(在线等待) 百思不得其解????Object.toString() 简单的session问题 HibernateTemplate 实现分页查询 安全问题?
例如,程序只对index进行管理(vector里的对象需不需要),那么其实index范围外的对象并没有被虚拟机进行回收,因为他们没有变为null。
如果是容器的话,如 Vector、Map 需要的话可以清空容器的内容。
只是不是马上清
或者你手动运行一下垃圾回收
不过一般溢出是代码的问题
回收内存不是解决问题的根本办法
爱问易 - 非官方技术支持互助平台
http://www.iaskengineer.com
爱问易 - 非官方技术支持互助平台
http://www.iaskengineer.com
vector = null只是提醒java虚拟机该回收了,但是真正的回收时机并不确定楼主可以加大虚拟机内存试试,如果嗨存在内存溢出就是泄露了,这个只能慢慢查,一模块一模块的查
Java内存溢出的详细解决方案
http://wobuxiaole.iteye.com/blog/408470
设置更好的数据结构。
JAVA里面需要释放的东西主要是文件读写句柄,数据库连接,或其他句柄
1.GC一直在工作,一般不要去手动的回收垃圾内存。
2.对于不用的对象及时的值为null,GC不会马上回收,但会提高回收的概率。
3.既然你的程序测试多次有BUG,内存溢出,建议你优化程序。