Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Java

Comprendre le Garbage Collector Java : Fonctionnement et Importance

Qu'est-ce que le Garbage Collector Java ?

Le Garbage Collector (GC) de Java gère automatiquement la mémoire, libérant les développeurs de la désallocation manuelle. Lorsqu'un objet n'a plus de références vivantes, le GC récupère son espace dans le tas, prévenant les fuites de mémoire qui pourraient faire planter les applications.

En Java, les objets sont créés sur le tas via l'opérateur new. L'environnement d'exécution suit les références ; lorsque la dernière référence disparaît, l'objet devient éligible à la collecte. Le GC s'exécute périodiquement en arrière-plan, rendant votre code plus simple et plus sûr.

Contrairement au C, où free() est requis, Java élimine le risque de pointeurs pendus et de comportements indéfinis, renforçant la fiabilité et la sécurité.

Tous les objets en Java résident dans la section tas de la mémoire – la zone que le GC scanne.

Exemple Pratique : Observer le GC en Action

Étape 1 – Copiez le code ci-dessous dans un éditeur :

class Etudiant {
    int a;
    int b;
    public void setData(int c, int d) {
        a = c;
        b = d;
    }
    public void showData() {
        System.out.println("Valeur de a = " + a);
        System.out.println("Valeur de b = " + b);
    }
    public static void main(String[] args) {
        Etudiant s1 = new Etudiant();
        Etudiant s2 = new Etudiant();
        s1.setData(1, 2);
        s2.setData(3, 4);
        s1.showData();
        s2.showData();
        //Etudiant s3;
        //s3 = s2;
        //s3.showData();
        //s2 = null;
        //s3.showData();
        //s3 = null;
        //s3.showData();
    }
}

Étape 2 – Compilez et exécutez le programme. Initialement, deux objets Etudiant et deux variables de référence sont créés. Reportez-vous au diagramme ci-dessous.

Comprendre le Garbage Collector Java : Fonctionnement et Importance

Étape 3 – Décommentez les lignes 20-22, puis réexécutez. Maintenant s3 pointe vers le même objet que s2. Le diagramme montre les deux références partageant un objet.

Comprendre le Garbage Collector Java : Fonctionnement et Importance

Étape 4 – Décommentez les lignes 23-24. Mettre s2 à null laisse s3 comme seule référence, l'objet est donc encore vivant.

Comprendre le Garbage Collector Java : Fonctionnement et Importance

Étape 5 – Décommentez les lignes 25-26. Avec s2 et s3 mis à null, l'objet devient éligible au GC. Le diagramme final illustre cet état.

Comprendre le Garbage Collector Java : Fonctionnement et Importance

Rendre un Objet Éligible à la Collecte

  1. Affectez sa variable de référence à null. Le GC récupérera alors la mémoire lors de son prochain passage.
  2. Les types primitifs (int, double, etc.) ne sont pas des objets et ne peuvent pas être null.

Comprendre le Garbage Collector Java : Fonctionnement et Importance

Note : Les finaliseurs explicites sont déconseillés ; fiez-vous au GC.

Java

  1. Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques
  2. Maîtriser les interfaces Java : concepts, implémentation et bonnes pratiques
  3. Maîtriser le try-with-resources Java : gestion automatique des ressources expliquée
  4. Annotations Java expliquées : types, placement et exemples pratiques
  5. Java Static Expliqué : Variables, Méthodes et Blocs – Exemples Pratiques
  6. Interface vs Classe Abstraite en Java : Comment Choisir la Bonne Abstraction
  7. Surcharge de Constructeur en Java – Expliqué avec Exemples de Code Pratiques
  8. Maîtriser les Collections Java : Guide complet des structures de données efficaces
  9. Java 10 : Interface Ramasse-Miettes (GC) et Full GC parallèle pour G1