How Phantom reference works?
The API doc says
This reference type differs from the others in that it isn't meant to be used to access the object, but as a signal that the object has already been finalized, and the garbage collector 开发者_如何学运维is ready to reclaim its memory.
If Phantom reference cannot be used to access the object, how does the garbage collector reclaims the memory used by this object ?
You might find this presentation from Bob Lee to be useful in demystifying the various reference types (slides).
A phantom reference lets you do final touch up closing on an object, even after it has been declared dead — no longer referenced by any live object.
http://mindprod.com/jgloss/phantom.html
精彩评论