A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 徐帅 中级黑马   /  2013-1-22 11:58  /  1781 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在张老师的视频中提到了:
   如果是一个Hash集合,每次存入删除等操作,都会通过hashcode方法,所以如果修改了某个元素的属性,
   这样在删除该元素的时候,是无法删除的,因为它们已经所属不同的内存块,所以会导致内存泄露,我想问,
   既然java中比较自豪的就是垃圾回收器,那么java机制会不会意识到这一点,进行垃圾回收呢,或者通过其
   他的方式进行处理呢,或者就真的导致内存泄露的大问题 ?

  谢谢各位啦!

评分

参与人数 1黑马币 +9 收起 理由
Rancho_Gump + 9 赞一个!

查看全部评分

3 个回复

倒序浏览
没那么智能。这个要自己在编码的时候来避免了
回复 使用道具 举报
java的垃圾回收机制就是JVM在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间。
我的理解是如果这个对象没有任何引用了,他所占用的内存空间就会在一个不确定的时间被释放掉。而当我们修改了hashcode后,对象还会存在于集合中,并不是没有程序引用它了,但是我们也找不到它了。
这样子就造成内存溢出了。

评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1 赞一个!

查看全部评分

回复 使用道具 举报
不清楚ia~~~~~~~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马