Sobes.tech
Senior

Qu'est-ce qu'une fuite de mémoire en Java, même avec un ramasse-miettes ?

sobes.tech IA

Réponse de l'IA

Une fuite de mémoire en Java est une situation où des objets, qui ne sont plus nécessaires à l'application, restent accessibles via des références racines et ne sont pas supprimés par le ramasse-miettes. Malgré la collecte automatique des déchets, si le programme continue de conserver des références à des objets inutiles (par exemple, dans des collections, des caches ou des champs statiques), la mémoire n'est pas libérée, ce qui entraîne une augmentation de la consommation de mémoire et un éventuel OutOfMemoryError.

Exemple : si dans une liste, on ajoute constamment des objets mais qu'on ne supprime pas les obsolètes, la liste va croître et la mémoire ne sera pas libérée, même si les objets ne sont pas utilisés dans la logique du programme.