weakreference:
A weak reference is a reference that does not protect the referenced object from collection by a garbage collector. Weak references are used in areas such as caching, where you want to keep a reference to an object for re-use but allow the system to reclaim it if memory grows low. Some garbage-collected languages feature or support various levels of weak references, such as Java, C#, Python, Perl and Lisp.