Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Mise à jour : novembre 2007
En C et C++, de nombreux objets nécessitent que le programmeur alloue leurs ressources une fois déclarées, pour que les objets puissent être utilisés sans risque. La libération des ressources de l'espace mémoire disponible une fois que l'objet a été utilisé relève également de la responsabilité du programmeur. Si les ressources ne sont pas libérées, on dit que le code subit une fuite de mémoire, puisque de plus en plus de ressources sont consommées inutilement. En revanche, si les ressources sont libérées prématurément, des pertes de données, l'altération d'autres zones de mémoire et des exceptions de pointeur null peuvent se produire.
Java et C# permettent d'éviter ces dangers en gérant indépendamment la durée de vie de tous les objets utilisés par une application.
En Java, la JVM (Java Virtual Machine) prend soin de libérer la mémoire inutilisée en suivant les références aux ressources allouées. Chaque fois que la JVM détecte qu'une ressource n'est plus référencée par une référence valide, la ressource est récupérée par le garbage collector.
En C#, le garbage collection est contrôlé par le CLR (Common Language Runtime) avec une fonctionnalité semblable à celle de la JVM. Le garbage collector CLR vérifie périodiquement si le tas de mémoire contient des objets non référencés et libère les ressources occupées par ces objets.
Voir aussi
Concepts
Gestion automatique de la mémoire