由于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的内容,它就不会受到垃圾回收的影响。

09-25 20:40