【发布时间】:2023-03-28 03:35:02
【问题描述】:
我有一个应用程序,其中 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。您在此处发布时会出错吗? -
你在这里使用的是 ArrayLists,而不是 LinkedList。
-
您有可能查看了错误的代码块。应该有
LinkedLists 填充而不是ArrayLists 以增加LinkedLiset$Entrys 的数量。为什么你认为这个代码块是问题之一? -
不,我没有出错。我认为可能错误的代码包含 ArrayLists。内存问题出在 LinkedLists 上。也许我对真正的问题在哪里得出了错误的结论。
标签: java list memory memory-management memory-leaks