stringtranslate.com

Referencia fantasma

Una referencia fantasma es un tipo de referencia en Java , donde se puede recuperar la memoria. La referencia fantasma es una de las fortalezas o niveles de referencia 'no fuerte ' definidos en el lenguaje de programación Java; los otros son débil y suave . [1] La referencia fantasma es el nivel más débil de referencia en Java; en orden de más fuerte a más débil, son: fuerte, suave, débil, fantasma.

Se hace referencia fantasmal a un objeto después de que se haya finalizado .

En Java 8 y versiones anteriores, es necesario borrar la referencia antes de poder recuperar la memoria de un referente finalizado. Un cambio en Java 9 [2] permitirá que la memoria de un referente finalizado se pueda recuperar inmediatamente.

Usar

Las referencias fantasma tienen un uso limitado, principalmente usos técnicos estrechos. [3] En primer lugar, se pueden utilizar en lugar de un finalizemétodo, lo que garantiza que el objeto no se resucite durante la finalización. Esto permite que el objeto se recolecte como basura en un solo ciclo, en lugar de tener que esperar un segundo ciclo de recolección de basura para garantizar que no se haya resucitado. Un segundo uso es detectar exactamente cuándo se ha eliminado un objeto de la memoria (usándolo en combinación con un ReferenceQueueobjeto), lo que garantiza que su memoria esté disponible, por ejemplo, aplazando la asignación de una gran cantidad de memoria (por ejemplo, una imagen grande) hasta que se libere la memoria anterior.

Véase también

Referencias

  1. ^ "java.lang.ref (Java Platform SE 8)". Especificación de la API de Java™ Platform, Standard Edition 8. Oracle . Consultado el 6 de agosto de 2016 .
  2. ^ oracle.com, kim barrett en (28 de diciembre de 2015). "hg: jdk9/hs-rt/jdk: 8071507: (ref) Borrar referencia fantasma como lo hacen las referencias débiles y suaves".
  3. ^ Nicholas, Ethan (4 de mayo de 2006). "Understanding Weak References" (Comprender las referencias débiles). www.java.net . Archivado desde el original el 19 de agosto de 2010. Consultado el 1 de octubre de 2010 .