ReflectionToStringBuilder

Java – Weakreference

Este tema hasta para los expertos en java les puede resultar desconocido y es que siempre creemos que un objeto que no esta referenciado por ninguna variable es candidato para que  el Garbage Colector lo elimine para liberar la memoria, sin embargo esto no es todo cierto ya que existen las referencias blandas las cuales a pesar de hacer referencia a un objeto en memoria estos objetos pueden se eliminados por el Garbage Colector.

 

Java ofrece la clase WeakReference la cual se define de la siguiente manera

WeakReference<T> reference = new WeakReferente<T>(new T());

En este ejemplo T es de tipo Genérico y deberemos sustituirlo por la clase que queramos administrar, por ejemplo si tenemos una clase Persona tendríamos que crear el WeakReference de la siguiente manera

WeakReference<Persona> reference = new WeakReference<Persona>(new Persona());

En este momento tendremos una referencia blanda hacia el objeto que creado y para obtener al objeto Persona tendremos que hacerlo mediante el metodo get de WeakReference de la siguiente manera:

Persona persona = reference.get();

Pero hay que tener cuidad siempre que obtengamos la referencia pues esta podría ser Null en cualquier momento ya que si ninguna otra variable tiene una referencia fuerte o Strong Reference a este objeto el Garbage Colector la eliminara.

 

Al igual que existen las referencias blandas o WeakReference también existe un HashMap de WeakReference la cual es  WeakHashMap<T,D> la cual tiene la misma mecánica pero implementado como un Map.

 

Estas son algunas de las cosas extrañas que existen en Java pero que nos interesante saberlas.

 

Artículos relacionados

Como crear un DataSource en WebLogic En este artículo les explico los pasos que se tiene que llevar a cabo para registrar un nuevo Data Source en WebLogic. Los Data Source o fuentes de da...
Java Message Service (JMS) En este Post se habla hacer de la especificación de JMS, los patronos de entrega de manejes que soporta como lo son Punto a Punto(P2P) y Publicador/Su...
Como crear un Connection Pool en WebLogic En la entrada pasada les enseñe los pasos para crear un DataSource (Como crear un Data Source en WebLogic) los cuales serán necesarios para la configu...

Oscar Blancarte

Ideológico, Innovador y emprendedor, Padre, Tecnólogo y Autor, amante de la ciencia y la tecnología en todos sus colores y sabores. Arquitecto de software & Full Stack Developer con experiencia en la industria del desarrollo de software y la consultoría. Amante de la programación y el Ajedrez.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *