2011-07-11 17 views

Respuesta

2

referencias duros son referencias normales, es decir, variables, a diferencia de las subclases de java.lang.ref.Reference, referencias fantasmas, suaves y débiles.

1

Una referencia fuerte (dura) es una referencia que le dice al recolector de basura que no toque este objeto (como en, no lo elimina de la memoria).

Cualquier objeto alcanzable a través de referencias fuertes de una raíz del recolector de basura (variables temporales en la pila (de cualquier subproceso), variables estáticas (de cualquier clase) y referencias especiales del código nativo JNI) se mantendrán activas. Las referencias fuertes son referencias normales.

Las referencias suaves, referencias débiles y referencias Phantom no son consideradas por el recolector de basura durante la limpieza (esto no es completamente cierto, ya que las referencias suaves se conservan durante cierto tiempo). Cualquier objeto que solo sea accesible a través de referencias no sólidas podría limpiarse durante la ejecución de su programa, y ​​estas referencias pueden devolver null en cualquier momento dado. Enfrente de referencias fuertes, necesita hacer un referenceobject para usar este tipo de referencias.

Para obtener más información sobre referencias blandas, débiles y fantasmas, consulte this document.

Cuestiones relacionadas