en el gráfico de objetos cuando uno no está vinculado a él, entonces la referencia se vuelve inalcanzable. luego, el recolector de basura busca estos objetos huérfanos colgantes y logra recuperar la memoria asignada.
java.lang.ref. {Phantom, Soft, Weak} Reference Enqueues objetos inalcanzables. Si se ejecuta el finalizador, el GC ya sabe que es inalcanzable.
leer sobre finalization- http://java.sun.com/developer/technicalArticles/javase/finalization/
En un lenguaje que tiene sólo referencias fuertes, objetos montón pueden o bien ser alcanzable o inalcanzable desde el programa . El conjunto de objetos alcanzables está determinado por el conjunto de variables de clase y variables de método en el programa que apunta a los objetos de montón. Este conjunto generalmente se conoce como el conjunto raíz del programa. Se puede acceder a un objeto apuntado por una variable en el conjunto raíz del programa. Además, un objeto puede ser indirectamente alcanzable. Es decir, un objeto es alcanzable si hay otro objeto accesible que lo señala. Dicha cadena de referencias del conjunto raíz del programa a un objeto de montón se denomina ruta de acceso. Un objeto puede tener más de una ruta de acceso, así como tener no hay rutas de accesibilidad en absoluto. Si el objeto no tiene rutas de accesibilidad, se considera basura y puede ser recolectado inmediatamente por el recolector de basura en el momento .
Un objeto entra en un estado inalcanzable cuando no existen más referencias sólidas a él. Cuando un objeto es inalcanzable, es un candidato para la recolección. Tenga en cuenta la fraseología: el hecho de que un objeto sea un candidato para la recopilación no significa que se recopilará inmediatamente. La JVM puede demorar la recopilación hasta que haya una necesidad inmediata de que el objeto consuma la memoria. Es importante tener en cuenta que no cualquier referencia fuerte mantendrá un objeto en la memoria. Deben ser referencias que encadenan desde una raíz de recolección de basura.raíces GC son una clase especial de variable que incluye
variables temporales en la pila (de cualquier tema) Las variables estáticas (de cualquier clase) referencias especiales de código nativo JNI
más si te gusta a http://java.sun.com/docs/books/performance/1st_edition/html/JPAppGC.fm.html
Muy buen ejemplo, pero la nomenclatura variable es un poco confusa. – Kiril