Junior — Middle
Quelle est l'utilisation de la classe SoftReference dans la gestion de la mémoire en Java?
sobes.tech IA
Réponse de l'IA
En Java, la classe SoftReference est utilisée pour créer des références souples aux objets, ce qui permet au ramasse-miettes de supprimer ces objets en cas de manque de mémoire, tout en les conservant tant que la mémoire est suffisante.
Ceci est utile pour implémenter des caches : les objets qui n'ont que des références souples ne sont pas considérés comme totalement inaccessibles, mais peuvent être supprimés si nécessaire pour éviter une OutOfMemoryError.
Exemple d'utilisation :
SoftReference<byte[]> cache = new SoftReference<>(new byte[1024 * 1024]);
byte[] data = cache.get();
if (data == null) {
// L'objet a été supprimé par le ramasse-miettes, il faut recharger les données
data = new byte[1024 * 1024];
cache = new SoftReference<>(data);
}
Ainsi, SoftReference aide à gérer efficacement la mémoire, en permettant de stocker des données en cache, sans empêcher le ramasse-miettes de libérer de la mémoire si nécessaire.