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

M茅todos HTTP (REST) Los m茅todos HTTP definen la acci贸n que se realizar谩 sobre un determinado recurso. Los m茅todos HTTP, tambi茅n suelen ser llamados HTTP Verbs. Aunque el ...
toString elegantes con ReflectionToStringBuilder En esta ocasi贸n聽les quiero platicar de una fant谩stica clase de utilidad que yo he utilizado con frecuencia en el desarrollo de software, Esta clase ...
Web Services con Java (JAX-WS) Los Web Services cada vez son m谩s indispensable a la hora de construir aplicaciones, debido a que ya casi cualquier aplicaci贸n empresarial, requiere i...

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 *