由于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
是一个类变量,尚不清楚doc是否将保留在内存中或此后是否可以进行垃圾回收。如果是这样,detachRootElement
是否可以解决此问题? 最佳答案
Java垃圾回收器不会影响任何使用的引用。只要您直接或间接引用doc
的内容,它就不会受到垃圾回收的影响。