¿Qué es una referencia suave?
En el lenguaje de codificación Java®, las referencias constantemente se hacen a objetos, cadenas y variables, incluso si el programador no es consciente de esas referencias. Estas referencias se comunican directamente con el recolector de basura, una función que reúne información innecesaria y la tira para que ya no tome memoria. Por defecto, todas las referencias son referencias fuertes y se establecen sin ninguna codificación, lo que significa que no se liberan al recolector de basura. Una referencia suave permite que los datos se desechen. Es la referencia de nivel medio para todas las referencias no fuertes.
Siempre que un programador hace algo con Java®, ya sea tan simple como hacer una cadena o crear funciones complejas, se hace una referencia. El programador no tiene que escribir un comando de referencia; La referencia se realiza automáticamente y es, por defecto, una referencia sólida. Esto significa que los datos de la referencia no se pueden tirar, porque están vinculados a objetos integrales necesarios para todo el script.
algunosSin embargo, los datos deben desecharse porque de lo contrario toman mucha memoria. Por ejemplo, si un programador construye un script en el que se usan los números de serie u otras piezas de información temporales se recopilan o crean, manteniendo esta información se vuelve perjudicial. El programa Java® se negaría a tirar la información, incluso cuando no sea necesario, y el script necesitaría más y más memoria para funcionar.
Al especificar una cadena o sección como referencia suave, que debe colocarse en la codificación, esto le dice al recolector de basura que los datos se pueden liberar. Una vez lanzado, la cadena o sección se leerá como "NULL". El recolector de basura, dependiendo de su configuración, decidirá cuándo se deben tirar los datos.
.Hay tres referencias no fuertes: referencia suave, referencia débil y referencia fantasma. La referencia débil es la más débil y se arrojan sus datoslejos rápidamente. Las referencias suaves, que son mejores para scripts donde los datos temporales se pueden usar varias veces, son las siguientes en la línea. Una referencia fantasma se tira casi automáticamente, en un segundo, y debe usarse con moderación.
El período de tiempo que queda una referencia suave generalmente depende de la cantidad de memoria en la computadora. Si la memoria está llena, entonces el recolector de basura primero destruirá todas las referencias débiles. Cuando todas las referencias débiles se han ido, y si la memoria aún necesita purgar datos, entonces se descartarán referencias suaves a continuación.