【发布时间】:2013-04-26 07:54:51
【问题描述】:
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();
}
}
是否需要遍历根map的值,先清除所有嵌套在根中的map,还是清除最外层的map就够了? 我的主要问题是,这两种方法在 JVM 的内存消耗上是否有区别?
【问题讨论】:
-
有什么具体原因使用
AbstractMap,为什么不直接使用Mapinterface? -
不,这只是因为如果我使用“Map”而不是“AbstractMap”,我的 IDE 总是建议来自 java.util 以外的其他包的 Map 实现。
标签: java memory-leaks jvm maps