Garbage Collection en Java

Le garbage collection en Java est le processus par lequel les programmes Java effectuent la gestion automatique de la mémoire. Les programmes Java se compilent en bytecode qui peuvent être exécutés sur une machine virtuelle Java, ou JVM. Lorsque des programmes Java s’exécutent sur la JVM, des objets sont créés sur le tas, qui est une partie de la mémoire dédiée au programme. Finalement, certains objets ne seront plus nécessaires. Le garbage collector trouve ces objets inutilisés et les supprime pour libérer de la mémoire.
 
 


 

  • En C/C++, le programmeur est responsable de la création et de la destruction des objets. D’habitude, le programmeur néglige la destruction d’objets inutiles. En raison de cette négligence, à un certain point, la mémoire peut ne pas être disponible et le programme entier se terminera anormalement, provoquant OutOfMemoryErrors.
  • Mais en Java, le programmeur n’a pas besoin de prendre soin de tous les objets qui ne sont plus utilisés. Le garbage collector détruit ces objets.
  • Le garbage collector est un exemple d’un thread Daemon car il s’exécute toujours en background.
  • L’objectif principal de Garbage Collector est de libérer de la mémoire dans le tas en détruisant les objets inaccessibles.

 
 

Avantage du Garbage Collection
  • Il rend la mémoire java efficace car le garbage collector supprime les objets non référencés de la mémoire du tas.
  • Il est fait automatiquement par le garbage collector (une partie de JVM) donc nous n’avons pas besoin de faire des efforts supplémentaires.

 

Exemple du Garbage Collection
public class MyGC {
	
	public void finalize(){
		System.out.println("l'objet est nettoyé"); 
	}
	 
	public static void main(String args[]){
		MyGC obj1 = new MyGC();
		MyGC obj2 = new MyGC();
		obj1 = null;
		obj2 = null;
		System.gc();
	}
}

 
Sortie:
 

 
La méthode finalize() est invoquée à chaque fois avant que l’objet ne soit nettoyé. Cette méthode peut être utilisée pour effectuer un traitement de nettoyage. Cette méthode est définie dans la classe « Object ». La méthode gc() est utilisée pour appeler le garbage collector pour effectuer un traitement de nettoyage. gc() se trouve dans les classes « System » et « Runtime ».
QCM-Java

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *