由于JDOM detachRootElement
的文档非常有限,我怀疑读取XML的最佳方法,并将dom树保留在内存中(如果只是为了只读目的)。
通常使用的是这样的:
public class .... {
Element stored = null;
private void load() {
// Build the document with SAX and Xerces, no validation
SAXBuilder builder = new SAXBuilder();
// Create the document
Document doc = builder.build(file);
stored = doc.getRootElement();
}
}
(这可能会引发异常,但为了清楚起见,我已将其留下了。)
知道stored
是一个类变量,不清楚文档是保存在内存中还是可以在此之后进行垃圾回收。如果是,detachRootElement
是否可能解决此问题?
答案 0 :(得分:1)
java垃圾收集器不会影响任何使用过的引用。只要您对doc
的内容有直接或间接的引用,它就不会受到垃圾回收的影响。