public class MyCache {
AbstractMap<String, AbstractMap<String, Element>> cache = new TreeMap<String, AbstractMap<String,
Element>>();
public Boolean putElement(String targetNamespace, Element element) {
...
}
public void clear() {
cache.clear();
}
// is it better this way?
public void deepClear() {
for(AbstractMap<String, Element> innerMap : cache.values()) {
innerMap.clear();
}
cache.clear();
}
}
是否有必要迭代根映射的值并首先清除嵌套在根中的所有映射,或者清除最外面的映射就足够了?
我的主要问题是,这两种方法对 JVM 的内存消耗有什么区别吗?
这两种方法是相同的。假设没有对象(除了映射本身)保存对嵌套映射的引用,一旦第一个映射被清除,它包含的所有映射都有资格被垃圾收集,因此,这些映射所引用的所有对象也是如此。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)