Maison  >  Article  >  Java  >  java qu'est-ce que gc

java qu'est-ce que gc

(*-*)浩
(*-*)浩original
2019-11-09 14:13:232561parcourir

GC signifie garbage collection (Gabage Collection). Le traitement de la mémoire est l'endroit où les programmeurs sont sujets à des problèmes. Un recyclage de mémoire oublié ou erroné peut entraîner une instabilité ou même un crash du programme ou du système.

java qu'est-ce que gc

La fonction GC fournie par Java peut détecter automatiquement si l'objet dépasse la portée pour atteindre l'objectif de recyclage automatique de la mémoire. la langue ne fournit pas de version Afficher la méthode de fonctionnement pour la mémoire allouée. (Apprentissage recommandé : cours java )

GC est un ramasse-miettes. Les programmeurs Java n'ont pas à se soucier de la gestion de la mémoire car le garbage collector s'en charge automatiquement. Pour demander le garbage collection, vous pouvez appeler l'une des méthodes suivantes :

System.gc() 
Runtime.getRuntime().gc()

Java est développé à partir de C++.

Il abandonne certaines choses lourdes et sujettes aux erreurs en C++. L'un d'eux est ce GC.

Lors de l'écriture d'un programme C/C++, le programmeur définit une variable, ce qui signifie ouvrir un espace correspondant dans la mémoire pour stocker la valeur. Quelle que soit la taille de la mémoire, elle est limitée, donc lorsque le programme n'a plus besoin d'utiliser une certaine variable, il doit libérer cette ressource d'espace mémoire afin que d'autres variables puissent l'utiliser.

En C/C++, la libération d'espace mémoire variable inutile doit être résolue par le programmeur lui-même. C'est-à-dire que lorsque le programmeur pense que la variable est inutile, il doit écrire un code pour libérer la mémoire qu'elle occupe. De cette manière, les fuites de mémoire et le gaspillage de ressources peuvent être évités au maximum.

Mais c'est évidemment très fastidieux. Lorsque le programme est relativement volumineux et qu'il comporte de nombreuses variables, les programmeurs oublient souvent de libérer de la mémoire ou libèrent de la mémoire alors qu'elles ne devraient pas être libérées.

Et libérer de la mémoire, du point de vue du développement, ne devrait pas être quelque chose dont les programmeurs devraient se soucier. Ce que les programmeurs doivent faire devrait être d'implémenter les fonctions requises du programme au lieu de dépenser beaucoup d'énergie pour allouer et libérer de la mémoire.

Avec GC en Java, les programmeurs n'ont pas besoin de libérer manuellement de l'espace mémoire. Lorsque la machine virtuelle Java constate que les ressources mémoire sont limitées, elle nettoie automatiquement l'espace mémoire occupé par les variables inutiles. Bien entendu, si nécessaire, les programmeurs peuvent utiliser explicitement System.gc() dans un programme Java pour forcer un nettoyage immédiat de la mémoire.

Étant donné que la déclaration explicite consiste à effectuer une analyse complète de la mémoire du tas, c'est-à-dire Full GC, toutes les activités doivent être arrêtées (Stop The World Collection). Votre application peut-elle résister à cela ?

Et cela montre que l'appel de System.gc() n'est qu'une suggestion à la machine virtuelle et peut ne pas être exécuté car System.gc() est exécuté dans un thread avec une très faible priorité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn