黑马程序员技术交流社区

标题: 关于java内存释放的问题 [打印本页]

作者: 杨海波    时间: 2012-6-1 18:40
标题: 关于java内存释放的问题
有个Map是如下定义的
public class AjaxAction extends Action {
public HashMap map= new HashMap();

}
请问但AjaxAction这个类被自动回收后,这个public的map所占用的内存是否被释放。
我是怀疑这个map还在占用内存,求高人指点
作者: 袁錦泰    时间: 2012-6-1 19:12
我个人的看法是,类都没有了,里面所定义的内容也会随之消失.
作者: 杨海波    时间: 2012-6-1 19:59
想了想也应该是这样类都没了,map集合里的定义的内容会随之消失。
作者: 赵志勇    时间: 2012-6-1 20:03
同意一楼的想法。
作者: 刘伯阳    时间: 2012-6-1 20:12
这个不一定的。
如果map里面存放的值正好被外部对象引用的时候,它应该不会被回收。
要看它有没有被视为有效对象。
作者: 黄奕豪    时间: 2012-6-1 20:17
我觉得楼主的说法欠妥哦:请问但AjaxAction这个类被自动回收后,应该是这个类的对象被回收吧,在堆内存中的只有对象,没有类,如果对象被回收了,对象里面的一片内存都被回收了,肯定里面的方法和属性也会没了的,人都没了,手的存在还有意义么?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2