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

Qu'est-ce que la récupération de place en Java ?

Qu'est-ce que la récupération de place en Java ?

Garbage Collection en Java est un processus par lequel les programmes effectuent automatiquement la gestion de la mémoire. Le Garbage Collector (GC) trouve les objets inutilisés et les supprime pour récupérer la mémoire. En Java, l'allocation mémoire dynamique des objets est réalisée à l'aide du nouvel opérateur qui utilise de la mémoire et la mémoire reste allouée jusqu'à ce qu'il y ait des références pour l'utilisation de l'objet.

Lorsqu'il n'y a pas de références à un objet, il est supposé qu'il n'est plus nécessaire et la mémoire occupée par l'objet peut être récupérée. Il n'y a aucun besoin explicite de détruire un objet car Java gère automatiquement la désallocation.

La technique qui accomplit cela est connue sous le nom de Garbage Collection . Les programmes qui ne désallouent pas de mémoire peuvent éventuellement planter lorsqu'il n'y a plus de mémoire à allouer dans le système. On dit que ces programmes ont des fuites de mémoire.

Le nettoyage de la mémoire en Java se produit automatiquement pendant la durée de vie du programme, éliminant ainsi le besoin de désallouer de la mémoire et évitant ainsi les fuites de mémoire.

En langage C, il est de la responsabilité du programmeur de désallouer la mémoire allouée dynamiquement à l'aide de la fonction free(). C'est là que mène la gestion de la mémoire Java.

Remarque :Tous les objets sont créés dans Heap Section de mémoire. Plus d'informations à ce sujet dans un didacticiel ultérieur.

Exemple :Apprendre le mécanisme du Garbage Collector en Java

Étape 1) Copiez le code suivant dans un éditeur.

class Student{
int a;
int b;

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

Étape 2) Enregistrez, compilez et exécutez le code. Comme le montre le diagramme, deux objets et deux variables de référence sont créés.

Étape 3) Décommentez la ligne # 20,21,22. Enregistrez, compilez et exécutez le code.

Étape 4) Comme le montre le schéma ci-dessous, deux variables de référence pointent vers le même objet.

Étape 5) Décommentez les lignes 23 et 24. Compilez, enregistrez et exécutez le code

Étape 6) Comme le montre le diagramme ci-dessous, s2 devient nul, mais s3 pointe toujours vers l'objet et n'est pas éligible pour la récupération de place Java.

Étape 7) Décommentez les lignes 25 et 26. Enregistrez, compilez et exécutez le code

Étape 8) À ce stade, aucune référence ne pointe vers l'objet et devient éligible pour la récupération de place. Il sera supprimé de la mémoire et il n'y a aucun moyen de le récupérer.

Comment supprimer un objet en Java ?

1) Si vous souhaitez rendre votre objet éligible pour Garbage Collection, affectez sa variable de référence à null.

2) Les types primitifs ne sont pas des objets. Ils ne peuvent pas être attribués nuls.


Java

  1. Opérateurs Java
  2. InterfaceJava
  3. Java essayer avec des ressources
  4. Annotations Java
  5. Variable statique en Java :Qu'est-ce qu'un bloc statique et une méthode [Exemple]
  6. Interface vs classe abstraite en Java :quelle est la différence ?
  7. Surcharge de constructeurs en Java :Qu'est-ce que c'est et exemples de programmes
  8. Java - Cadre de collections
  9. Java 10 - Collecte de mémoire améliorée