比方說,我有一個類集合,其中包含項目列表。在這種情況下,我應該擔心釋放資源嗎?
public class Collection
{
private List<Item> MyList;
//...
}
我有這個Collection類的幾個實例,它們都有不同的MyLists但共享一些項目。 例如:有10個項目,Collection1參考項目1-4,Collection2在其列表中包含項目2-8和Collection3 4,7,8和10。
我實現了這個如下:我有一個全局列表,其中包含任何可用的項目。在我創建一個新集合之前,我檢查是否已經有這個列表中需要的項目 - 如果沒有,我創建項目並將其添加到全局列表(以及當然的集合)。
我看到的問題是那些項目永遠不會被釋放 - 即使所有集合都消失了,它們消耗的內存仍然沒有被釋放,因爲全局列表仍然引用它們。 這是我需要擔心的事嗎?如果是這樣,我該怎麼辦?我想爲全局列表添加一個計數器,以查看何時不再需要某個項目並刪除其參考。
編輯: 這實際上是一個設計問題,我認爲。我將放棄全局列表的想法,而是遍歷所有集合,看看他們是否已經擁有所需的項目。
感謝提到弱引用 - 我不知道他們。但我不認爲它們與我的問題有關。 – CaptainProton 2009-07-17 05:52:59