2012-08-03 47 views
0

我試圖將一堆對象添加到db4o數據庫。看起來你必須爲每個對象創建一個新的對象,因爲如果我只是更新舊的值並再次存儲它,它就會覆蓋數據庫中的記錄,而我只能記錄一條記錄。因此,這裏就是我有工作:尋找最有效的方式來生成大量的對象在Java中添加到db4o數據庫

for (String o : d.students) { 
    Student stu1 = new Student(o); 
    db.store(stu1); 
    stu = null; 
} 

我對這個問題顯然是我沒有做任何事情與剛剛存儲的,只是重新分配指針的對象。我知道Java的垃圾收集應該只是照顧一切,但我也知道Java知道漏洞,所以如果有更安全的方法去做這件事,我寧願這樣做。

非常感謝!

+0

JVM的GC確實會照顧內存,不會有任何泄漏。 – Burkhard 2012-08-03 15:51:42

回答

2

我認爲你的斷言「Java的漏洞已知」充其量只是誤導。

假設db組件不包含該引用,只需在循環範圍內指定一個變量就足以在循環外觸發其收集。在上面將變量設置爲null是不必要的優化。

+0

好,很酷,我在想那個空。 我不太瞭解垃圾收集的實際機制,所以如果有人知道他們在說什麼,說我聽到的是錯誤的,我會接受他們的話......然後去做一些研究!再次感謝! – Andy 2012-08-03 16:53:47

+0

不在此示例中,但對於更復雜的情況,爲jvm設置Xmn值也有助於更快速地收集對象。 – 2012-08-03 17:15:30

相關問題