我有一个应用程序,其中java.util.LinkedList $ Entry对象的数目似乎在稳步增加。此应用程序包含一个方法,其中包含以下代码:
final List<Boolean> correctnessList = new ArrayList<Boolean>();
final List<Double> discriminationList = new ArrayList<Double>();
final List<Double> difficultyList = new ArrayList<Double>();
final List<Double> guessingList = new ArrayList<Double>();
.
.
.
for (ItemData datum : candidateItemData) {
.
.
.
correctnessList.add(datum.isCorrect);
discriminationList.add(iRTParameter.discrimination);
difficultyList.add(iRTParameter.difficulty);
guessingList.add(iRTParameter.guessing);
.
.
.
}
包含此代码的方法称为很多次。当然,每次方法返回时,List对象都会超出范围,并且可能用于垃圾回收。
但是,正如我所说的,java.util.LinkedList $ Entry对象的数量似乎在稳步增加。
我在这里创建了内存泄漏吗?我应该在方法末尾的List对象上调用一些方法,以便LinkedList $ Entry对象可以被垃圾回收?
它出现在这段代码中,你使用'ArrayLists',而不是'LinkedLists'。您可以在此处发布时发生错误吗? – 2011-03-14 15:41:21
你在这里使用ArrayLists,而不是LinkedList。 – 2011-03-14 15:43:18
有一个机会,你看着错误的代码块。应该有'LinkedList'填充'ArrayList'的数量'LinkedLiset $ Entry's的数量不断增加。你为什么认为这个代码块是问题之一? – Simeon 2011-03-14 15:44:15