Reputation: 2711
Effective Java: Item 6: Eliminate obsolete object references.
Generally speaking, whenever a class manages its own memory, the programmer should be alert for memory leaks. Whenever an element is freed, any object references contained in the element should be nulled out.
I don't think I fully understood the description.
What are the examples of a class managing its own memory - I can think of array, list, maybe map.
Could anyone explain the item in somewhat more details it is there in the book? Thanks
Upvotes: 7
Views: 245
Reputation: 1077
It maybe speaking about programming your own classes as well as the other answer. So for instance if you have a class that manages memory or resources, then you need to make sure you release the memory or resource when the class is destroyed. A good example of this is if you have a class that manages a connection to a database. The connection would have to be closed to release the resource before your class is destroyed.
Upvotes: 1
Reputation: 64036
One simple example is ArrayList
, where, when an element is deleted from the end of the list it has to null the array element, not simply decrease the "last element" index. Otherwise the object removed remains reachable by the ArrayList
.
Upvotes: 4