2011-05-31 37 views
6

有效的Java:項目6:消除過時的對象引用。管理自己的內存的類

一般來說,當一個類 管理它自己的內存,程序員 應該是內存泄漏警報。 每當元素被釋放時, 元素中包含的任何 對象引用都應該被清除。

我不認爲我完全理解了描述。

什麼是管理自己的記憶類的例子 - 我可以想到數組,列表,也許地圖。

任何人都可以在這本書中有更詳細的解釋該項目? 謝謝

+1

我想你只需要閱讀整個部分。它的解釋非常清楚。把這段話放在背景之外實際上是非常具有誤導性的。 – EJP 2011-05-31 05:44:24

+1

@EJP我讀了一節。我明白了這個例子中的錯誤。但是我無法想象許多這樣的情況。所以我想我並沒有完全理解它。 – Atul 2011-05-31 05:46:46

+2

這種情況並不多。 Stack和ArrayList是其中的兩個。 – EJP 2011-05-31 05:56:52

回答

4

一個簡單的例子是ArrayList,其中,當一個元素從列表的末尾刪除時,它必須爲空數組元素,而不是簡單地減少「最後一個元素」索引。否則,刪除的對象仍可通過ArrayList到達。

+0

是的。列表,數組和映射可能是這種情況。感謝你的回答。如果直到明天我都沒有得到更好的答案,我會接受它是正確的。 – Atul 2011-05-31 08:35:02

1

這可能是關於編程自己的類以及其他答案。因此,舉例來說,如果您有一個管理內存或資源的類,那麼當類被銷燬時,您需要確保釋放內存或資源。一個很好的例子就是如果你有一個管理數據庫連接的類。在你的課程被銷燬之前,必須關閉連接才能釋放資源。