2011-05-31 76 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

这可能是关于编程自己的类以及其他答案。因此,举例来说,如果您有一个管理内存或资源的类,那么当类被销毁时,您需要确保释放内存或资源。一个很好的例子就是如果你有一个管理数据库连接的类。在你的课程被销毁之前,必须关闭连接才能释放资源。