Re: Nulling an object
"Frank Cisco" <tdyjkdftyujdtjyj@dtyjdtyjdtyjdty.com> wrote in message
news:AKYPl.30116$0V4.28184@newsfe25.ams2...
If you null and object ie. obj = null, when is it cleared from memory?
Immediately or at the next garbage collection?
I have been programming in Java since ca. 1995, and I have never once
bothered myself with "helping" GC. It is my considered opinion that GC is
supposed to be automatic. If I wanted to worry about memory management, I
would program in C++. Actually, I sometimes do, but I digress.
In 15 years, I have had two sources of "memory leaks" in Java, both due to
programmer error: Threads not actually terminating, and thus keeping
references to all sorts of resources attached to them, and collections that
still contained items that should have been removed. I've never encountered
a need to explicitly null out any references. I suppose there are certain
corner cases that would require it:
- The stack example (although failure of a stack to truly unreference a
popped element would be unexpected and, I hope, clearly documented)
- Objects created near the head of the call stack (say, main) that remain in
scope for a very long time, even though they are no longer needed. I suspect
that there are ways of organizing the code so as to eliminate that behavior,
but perhaps just setting the reference to null when finished with it is the
simplest thing.