2012-03-29 40 views
1

我在我的Java應用程序中運行線程,同時(真)循環與睡眠(50000)(5分鐘)裏面。這個線程在循環之前加載一個XML文件,因爲我需要在第一次迭代中解析它的一些信息。從內存中檢索SAXBuilder對象

 //Loding XML File 
    org.jdom.Document document = null; 
    SAXBuilder sxb = new SAXBuilder(); 
    try 
    { 
     document = sxb.build(new File("Configuration/Map.xml")); 
    } 
    catch(Exception e){} 
    org.jdom.Element racine = document.getRootElement(); 
    //End loding XML File 

從第二次迭代使用XML文件的概率減少了這麼多,因此保持在內存中的XML文件中有沒有意義(因爲文件中有103000行/3 MB)。所以我決定從內存中檢索它並在每次需要時加載它。 問題是,我找不到如何從內存中檢索文檔racine對象,因爲Java會自動使用垃圾收集。 並告訴我,如果這是一個良好的做法,以獲得優化解決方案。

回答

1

如果你只希望你的對象被垃圾收集,那麼我認爲使變量Null可以做到。

document = null; 
sxb = null; 
racine = null; 
+0

如果你想使你的對象進行垃圾回收,轉讓其引用變量設置爲null謝謝,正是**。** 但我不知道如果我的解決方案是一個很好的一個。 – 2012-03-29 12:48:46

+0

這個解決方案可以在GC中工作。 GC將收集那些無法再訪問的對象。所以你使用你的文檔,sxb,racine等對象,並將它們設置爲null,一旦你完成了它們。使他們有資格被GC收集。 – amitp 2012-03-29 16:56:04