Qu'est-ce qu'une référence souple?
Dans le langage de codage Java®, des références sont constamment faites aux objets, aux chaînes et aux variables, même si le programmeur ignore ces références. Ces références communiquent directement avec le ramasse-miettes, une fonction qui rassemble des informations inutiles et les jette de manière à ne plus utiliser de mémoire. Par défaut, toutes les références sont des références fortes et sont définies sans codage, ce qui signifie qu'elles ne sont pas publiées dans le ramasse-miettes. Une référence souple permet de supprimer les données. C'est la référence de niveau intermédiaire pour toutes les références non fortes.
Chaque fois qu'un programmeur fait quelque chose avec Java®, qu'il s'agisse de créer une chaîne ou de créer des fonctions complexes, une référence est créée. Le programmeur n'a pas besoin d'écrire une commande de référence; la référence est faite automatiquement et est, par défaut, une référence forte. Cela signifie que les données de la référence ne peuvent pas être supprimées, car elles sont liées à des objets intégraux nécessaires au script entier.
Certaines données doivent cependant être jetées, car elles utilisent beaucoup de mémoire. Par exemple, si un programmeur crée un script dans lequel les numéros de série sont utilisés ou si d'autres informations temporaires sont rassemblées ou créées, conserver ces informations devient préjudiciable. Le programme Java® refuserait de jeter les informations, même inutiles, et le script aurait besoin de plus en plus de mémoire pour fonctionner.
En spécifiant une chaîne ou une section en tant que référence souple, qui doit être placée dans le codage, cela indique au garbage collector que les données peuvent être libérées. Une fois publié, la chaîne ou la section se lira comme "null". Le ramasse-miettes, en fonction de son paramétrage, décidera du moment où les données doivent être jetées.
Il existe trois références non fortes: référence souple, référence faible et référence fantôme. La référence faible est la plus faible et ses données sont rapidement perdues. Les références logicielles, qui conviennent le mieux aux scripts dans lesquels des données temporaires peuvent être utilisées plusieurs fois, sont ensuite ajoutées. Une référence fantôme est jetée presque automatiquement, en une seconde, et doit être utilisée avec parcimonie.
La durée pendant laquelle une référence logicielle reste dépend généralement de la quantité de mémoire de l'ordinateur. Si la mémoire est pleine, le ramasse-miettes va d'abord détruire toutes les références faibles. Lorsque toutes les références faibles ont disparu et si la mémoire a encore besoin de purger les données, les références logicielles sont ensuite lancées.