Quelle est la hiérarchie des références en Java ?
SoftReferences vs. WeakReferences
Pendant la discussion références en Java, on rencontre souvent les termes « références douces » et « références faibles ». Que représentent exactement ces deux types de références, et en quoi diffèrent-elles ?
Comme l'explique l'article « Comprendre les références faibles » d'Ethan Nicholas, les références faibles sont des références qui ne sont pas assez fortes pour garder un objet en mémoire. . Cela signifie qu'une fois qu'il n'y a plus de références fortes pointant vers un objet, le ramasse-miettes peut le supprimer.
En revanche, les références logicielles sont comme les références faibles, mais elles sont moins désireuses de supprimer l'objet référencé. Les objets facilement accessibles restent en mémoire tant qu'il y a suffisamment de mémoire disponible. Si la mémoire devient rare, le garbage collector peut nettoyer les références logicielles pour libérer de l'espace.
Ces propriétés rendent les références logicielles idéales pour les caches, où les objets peuvent être stockés pour un accès rapide aussi longtemps que la mémoire le permet. En cas de manque de mémoire, les objets les moins importants (ceux facilement accessibles) seront supprimés.
De plus, Peter Kessler observe que Sun JRE traite les références logicielles différemment des références faibles. Le client JRE donne la priorité à la suppression des références logicielles pour maintenir une empreinte mémoire plus petite, tandis que le serveur JRE se concentre sur les performances en étendant le tas au lieu d'éliminer les références logicielles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!