Un objet devient éligible à la collecte d'ordures ou GC s'il n'est pas accessible à partir d'un thread vivant ou par des références statiques.
En d'autres termes, on peut dire qu'un objet devient éligible à la collecte des déchets si toutes ses références sont nulles. Les dépendances cycliques ne sont pas comptées comme des références. Ainsi, si l'objet A a une référence à l'objet B et que l'objet B a une référence à l'objet A et qu'ils n'ont aucune autre référence vivante, les deux objets A et B seront éligibles pour la collecte des déchets.
Générations de tas pour la collecte d'ordures -
Les objets Java sont créés dans Heap
y Heap
est divisé en trois parties ou générations pour les besoins du ramassage des déchets en Java, qui sont appelées Jeune (nouvelle) génération, ancienne (ancienne) génération et zone de Perm du tas.
Nouvelle génération est divisé en trois parties : l'espace Eden, l'espace Survivant 1 et l'espace Survivant 2. Lorsqu'un objet est créé pour la première fois dans le tas, il est créé dans une nouvelle génération à l'intérieur de l'espace Eden et après une collecte mineure subséquente, si l'objet survit, il est déplacé vers le survivant 1, puis vers le survivant 2 avant la collecte majeure. génération ancienne ou titulaire .
Espace perm Le tas de Java est l'endroit où la JVM stocke les métadonnées sur les classes et les méthodes, le pool de chaînes et les détails au niveau des classes.
Voir ici pour plus d'informations : Collecte des ordures
Vous ne pouvez pas forcer la JVM à lancer le Garbage Collection, mais vous pouvez faire une demande en utilisant la commande System.gc()
o Runtime.gc()
méthode.
Dans java.lang.System
public static void gc() {
Runtime.getRuntime().gc();
}
Dans java.lang.Runtime
public native void gc(); // note native method
Algorithme de marquage et de balayage -
Il s'agit de l'un des algorithmes les plus populaires utilisés par le Garbage Collection. Tout algorithme de ramassage des ordures doit effectuer deux opérations de base. Premièrement, il doit être capable de détecter tous les objets inaccessibles et deuxièmement, il doit récupérer l'espace du tas utilisé par les objets poubelles et rendre l'espace à nouveau disponible pour le programme.
Les opérations ci-dessus sont effectuées par l'algorithme Mark and Sweep en deux phases :
- Phase de marquage
- Phase de balayage
lire ici pour plus de détails - Algorithme de marquage et de balayage
2 votes
Duplicata possible de Collecte des ordures
12 votes
Parfois, il vaut mieux lire un chapitre d'un bon livre que de comprendre un sujet complexe à partir de la réponse à une question.
4 votes
@Ian C'est une question similaire, mais pas un doublon. Et cette question pue de devoirs.