Quelle est la différence entre System gc et Runtime gc en Java

le différence principale entre System gc et Runtime gc en Java est que System gc est une méthode de classe alors que Runtime gc est une méthode d'instance..

Java est un langage de programmation général et de haut niveau. Il est robuste et sécurisé, assure l’indépendance de la plate-forme et prend en charge le multi-threading. De plus, il permet une programmation orientée objet. Par conséquent, il est plus facile de modéliser des scénarios réels pour créer des applications à l'aide de Java. Un autre avantage important de Java est qu’il fournit un ramasse-miettes qui détruit automatiquement les objets inutilisés pour une meilleure gestion de la mémoire. L'exécution du garbage collector est un processus automatique, mais il est également possible de demander à la machine virtuelle Java d'exécuter le garbage collector. System gc et Runtime gc sont deux méthodes de ce type pour demander à JVM d'exécuter le récupérateur de place.

Zones clés couvertes

1. Qu'est-ce que System gc en Java?
     - Définition, fonctionnalité
2. Qu'est-ce que Runtime gc en Java?
     - Définition, fonctionnalité
3. Quelle est la relation entre System gc et Runtime gc
     - Schéma d'association
4. Quelle est la différence entre System gc et Runtime gc
     - Comparaison des différences clés

Mots clés

Système gc, Runtime gc

Qu'est-ce que System gc?

Dans la classe system, il existe une méthode appelée gc (). Il exécute le ramasse-miettes. Cette méthode appelle la méthode finalize () pour détruire les objets non utilisés. En Java, les objets sont créés dans le tas.

Habituellement, la machine virtuelle Java appelle implicitement le ramasse-miettes. Cependant, il n'appellera pas inutilement le ramasse-miettes. Supposons qu'il n'y ait que quelques objets dans le tas. Ensuite, JVM n'invoquera pas le ramasse-miettes. Il n'appellera le ramasse-miettes que lorsque la quantité de mémoire est réduite..  

Figure 1: Architecture de la machine virtuelle Java

Par exemple, supposons qu'il soit nécessaire de créer un nouvel objet et qu'il y ait peu de mémoire dans le tas. Tout d'abord, le ramasse-miettes va rechercher un objet non référencé. Ensuite, il invoquera la méthode finalize. Ensuite, il libérera les ressources allouées de cet objet et le détruira. Enfin, JVM allouera cette mémoire au nouvel objet créé. Tout ce processus prend plus de temps. Au lieu de cela, le programmeur peut appeler la méthode System.gc (). Il s'agit d'une demande à la machine virtuelle Java d'exécuter le ramasse-miettes de manière continue en arrière-plan..

Qu'est-ce que Runtime gc?

La tâche du Runtime gc est la même que celle de System gc. C'est une méthode qui indique à la machine virtuelle Java d'exécuter le ramasse-miettes de manière continue. Contrairement à Runtime gc, qui est une méthode de classe, Runtime gc est une méthode d'instance. Un problème majeur dans System gc et Runtime gc est qu’ils peuvent causer des problèmes de performances..

Relation entre System gc et Runtime gc

  • gc () appelle en interne Runtime.gc ().

Différence entre System gc et Runtime gc

Définition

System gc est une méthode de classe qui suggère à la machine virtuelle Java (JVM) d’exécuter le garbage collector afin d’obtenir de la mémoire à partir d’objets inutilisés afin de créer de la mémoire pour les objets actuels. Runtime gc est une méthode d'instance qui suggère à la machine virtuelle Java (JVM) d'exécuter le ramasse-miettes pour obtenir la mémoire des objets inutilisés afin de créer de la mémoire pour les objets actuels.. 

Base

Par conséquent, la principale différence entre System gc et Runtime gc réside dans le fait que le système gc est une méthode de classe alors que runtime gc est une méthode d'instance..

Type

Une autre différence entre System gc et Runtime gc est que system gc est une méthode non native, alors que runtime gc est une méthode native..

Déclaration

La déclaration de la méthode java.lang.System.gc () est publique voic statique gc ()

La déclaration de la méthode java.lang.Runtime.gc () est publique void gc ()

Conclusion

Garbage Collector libère la mémoire de tas en détruisant les objets inaccessibles. System gc et Runtime gc sont deux méthodes pour demander à JVM d'exécuter Garbage Collector. La différence fondamentale entre System gc et Runtime gc en Java réside dans le fait que System gc est une méthode de classe alors que Runtime gc est une méthode d'instance. Généralement, System gc est plus pratique que Runtime gc.

Référence:

1. Quelle est l'utilisation de System.gc ()? | Questions d'entretiens chez Core Java, Naresh i Technologies, 1 er mars 2017, disponible ici.
2. “Exemple de méthode Java.lang.System.gc ().” Www.tutorialspoint.com, disponible ici..
3. “Exemple de méthode Java.lang.Runtime.gc ().” Www.tutorialspoint.com, disponible ici..
4. «Ramassage des ordures en Java». GeeksforGeeks, 7 septembre 2018, disponible ici.

Courtoisie d'image:

1. “Architecture de la machine virtuelle Java” Par Dcoetzee (Fichier: Computer-blue.svg de OpenClipart, Fichier: Phone-blackberry-bold.svg de User: Techtoucian) - Travail personnel (CC0) via Commons Wikimedia