Demande dans la programmation

Chrisnicolson Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
bonjour!
je suis debutant en java.
j'ai solicite votre aide!
comment je pouvais supprime le contenu d'une variable deja dans un programme?
merci d'avence...

1 réponse

Utilisateur anonyme
 
Tu peux supprimer un objet en faisant

objet = null;

le garbage collector supprimera l'espace alloué à l'objet .
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,
le garbage collector supprimera l'espace alloué
... si il veut !

Le gc n'est généralement appelé que lorsqu'il n'y a plus de mémoire disponible, donc même s'il n'est plus utilisé, l'objet restera en mémoire au moins jusqu'au prochain gc.
Cependant il existe plusieurs générations d'objets dans la mémoire, quand le gc veut libérer de la mémoire il supprime d'abord les objets les plus récents (young generation), plus rapides à supprimer. Mais les objets les plus anciens (old generation), même s'ils ne sont plus utilisés, resteront en mémoire après un gc.
Il n'y a vraiment que lorsque le nettoyage de la young n'est plus suffisant pour libérer de la mémoire que la old est à son tour nettoyée, par un full gc. À ce moment là seulement on est sûr que tout les objets non utilisés sont supprimés.

Remarque :
objet = null
ne suffit pas pour garantir que l'objet n'est plus utilisé.
Si je fais
Object x = new Object(), y = x; x = null;
l'objet est encore utilisé par
y
, donc le gc ne le supprimera pas tant que
y
sera utilisé par le programme...
0
Utilisateur anonyme
 
Je prends note des explications, après si on veut contrôler la mémoire précisément au point d'être à une variable près autant se tourner vers du C. Attendons de voir si l'auteur précise ses besoins
0