Sobes.tech
Junior — Middle

Peux-tu énumérer les types de références existants en Java et leurs caractéristiques?

sobes.tech IA

Réponse de l'IA

En Java, il existe les types de références suivants qui influencent la collecte des déchets et la gestion de la mémoire :

  1. Référence Forte (Strong Reference)

    • La référence habituelle que nous utilisons par défaut.
    • Un objet avec une référence forte ne sera pas supprimé par le ramasse-miettes.
  2. Référence Douce (Soft Reference)

    • Utilisée pour la mise en cache.
    • Les objets avec des références douces ne sont supprimés qu'en cas de manque de mémoire.
    • Classe : java.lang.ref.SoftReference
  3. Référence Faible (Weak Reference)

    • Les objets avec des références faibles sont supprimés lors du prochain cycle de collecte si aucune référence forte n'existe.
    • Utilisée pour implémenter des caches faibles.
    • Classe : java.lang.ref.WeakReference
  4. Référence Fantôme (Phantom Reference)

    • Utilisée pour suivre le moment où un objet est prêt à être supprimé.
    • Ne permet pas d'obtenir l'objet via la méthode get() (retourne null).
    • Utilisée pour un contrôle plus précis du nettoyage des ressources.
    • Classe : java.lang.ref.PhantomReference

Exemple de création d'une référence faible :

import java.lang.ref.WeakReference;

String fort = new String("Hello");
WeakReference<String> faible = new WeakReference<>(fort);

fort = null; // l'objet n'est plus accessible que via la référence faible

String valeur = faible.get(); // peut retourner null si l'objet a déjà été collecté