首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清除集合对象中的引用

问清除集合对象中的引用
EN

Stack Overflow用户
提问于 2015-04-02 07:33:25
回答 1查看 27关注 0票数 1

我有一个HashMap,它是学生型的。学生是一个用户定义的对象,它由少数属性和另一个名为College的用户定义对象组成。现在,在使用完之后,我想清除HashMap使用的所有内存,然后清除学生和学院对象使用的所有内存。因此,在进行空化时,是否需要显式地对学生和学院对象进行赋值,然后将空引用赋值给HashMap对象?还是只将NULL赋值给HashMap对象也会释放学生和学院对象所使用的内存?

代码语言:javascript
复制
Map<String, Student> myMap = new HashMap<String, Student>
Student std = myMap.get("");
College col = std.getCollege();
col = null; std = null;
myMap = null;

为了释放HashMap正在使用的内存,我需要做以上所有的工作吗?或者取消HashMap将释放所有内存?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-26 05:12:19

我只需找出答案就知道了,当我们对任何hashmap对象调用clear方法时,它会在hashmap中的所有对象/内容上进行内部迭代,并显式地将其赋值为NULL。然后将hashMap的大小设置为0,以清除哈希映射。下面是HashMap类的clear()方法的实现。

代码语言:javascript
复制
public void clear() {
    this.modCount += 1;
    Entry[] arrayOfEntry = this.table;
    for (int i = 0; i < arrayOfEntry.length; ++i)
        arrayOfEntry[i] = null;
    this.size = 0;
}

您可以在eclipse中使用jadclipse查看HashMap类的这个内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29407434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档