2012-05-08 11 views

Respuesta

-1

Si un objeto solo tiene una referencia débil , el gc puede borrarlo de la memoria.

El referencia suave es decir una referencia de lo que no impide la GC cuando es quiere limpiar el objeto también. Pero si un objeto referido por una referencia suave es el gc intente mantener el objeto en la memoria mientras sea posible.

+0

'Referencias globales débiles', no java.lang.ref.WeakRef. Esto es JNI. – EJP

4

creo que la respuesta a sus preguntas se puede encontrar aquí: http://java.sun.com/docs/books/jni/html/refs.html

Como su escrito:

referencias locales y globales tienen diferentes tiempos de vida. Las referencias locales se liberan automáticamente, mientras que las referencias mundiales globales y débiles permanecen válidas hasta que el programador las libera.

La diferencia entre las referencias locales y globales referencias es: el contexto

La referencia local es sólo una variable local. El objeto subyacente se destruirá una vez que salgas de su contexto (como regresar de la función nativa que lo definió).

Al igual que las referencias a nivel mundial, la debilidad de las referencias mundiales siguen siendo válidas en toda llamadas a métodos nativos ya través de diferentes temas. A diferencia de las referencias globales , las referencias globales débiles no mantienen el objeto subyacente como basura recolectada.

La diferencia entre las referencias globales débiles y las referencias globales es que el objeto al que hace referencia el débil puede ser recogido si es necesario (en caso de falta de memoria).

Cuestiones relacionadas