java集合类中有对对象的引用,使用完后未清空,使得JVM不能回收(求例子)并且附上解决方法 80

java集合类中有对对象的引用,使用完后未清空,使得JVM不能回收(求例子)并且附上解决方法... java集合类中有对对象的引用,使用完后未清空,使得JVM不能回收(求例子)并且附上解决方法 展开
 我来答
金多kindo
2017-12-21
知道答主
回答量:6
采纳率:0%
帮助的人:1.9万
展开全部

我明白你的意思。

这种情况可能的结果是出现异常类:OutOfMemoryError(内存溢出)。

产生的原因其中之一就是 集合类中对对象的引用,使用完未清空,使得JVM不能回收。

可以这样子清空,代码如下:

Set set = new HashSet();

/*中间这部分是使用set的代码...,最后clear()清空*/

set.clear();

随信附上出现内存溢出异常时常用的解决办法(转自Java面试那些事):

  1. 检查代码中是否有死循环或递归调用。

  2. 检查是否有大循环重复产生新对象实体。

  3. 检查对数据库查询中,是否有一次获得全部数据的查询。一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。这个问题比较隐蔽,在上线前,数据库中数据较少,不容易出问题,上线后,数据库中数据多了,一次查询可能就会引起内存溢出。因此对于数据库查询尽量采用分页的方式查询。

  4. 检查List、Map等集合对象是否使用完未清除的问题,List、Map等集合对象会始终存有对对象的引用,使得这些对象不能被GC回收。

  5. 检查对大文件的读取是否采用nio的方式。(这块我不懂,你可以百度看看,也欢迎你跟我交流。)

望采纳,谢谢。(●'◡'●)

229399826
2015-09-25
知道答主
回答量:9
采纳率:0%
帮助的人:5.4万
展开全部
没太懂的你的问题 试试静态变量能不能解决你的问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式